64,648
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
void Quicksort(int A[],int l,int r);
int Partition(int A[],int l,int r);
void swap(int& m,int& n);
int main()
{
int a[8];
int i;
cout <<"请为数组赋值:" <<endl;
for(i=0;i <8;++i)
{
cout <<"请输入第" <<(i+1) <<"个数组元素:";
cin>>a[i];
cout <<endl;
}
Quicksort(a,0,7);
cout <<"排序后输出:";
for(i=0;i <8;++i)
cout <<a[i] <<" ";
return 0;
}
void Quicksort(int A[],int l,int r)
{
int s;
if(l <r)
{
s=Partition(A,l,r);
Quicksort(A,l,s-1);
Quicksort(A,s+1,r);
}
}
int Partition(int A[],int l,int r)
{
int i,j,p;
p=A[l];
i=l; j=r+1;
do
{
do
{
j--;
}while(A[j]>p&&j>=i);
do
{
++i;
}while(A[i] <p&& i<=j);
if (i<j)swap(A[i],A[j]);
}while(i <=j);
swap(A[l],A[j]);
return j;
}
void swap(int& m,int& n)
{
int t;
t=m;
m=n;
n=t;
}
d:\>g++ test.cpp
d:\>a
请为数组赋值:
请输入第1个数组元素:6
请输入第2个数组元素:5
请输入第3个数组元素:4
请输入第4个数组元素:9
请输入第5个数组元素:8
请输入第6个数组元素:7
请输入第7个数组元素:3
请输入第8个数组元素:2
排序后输出:2 3 4 5 6 7 8 9
d:\>