快速排序的实现
输入9个数字,采用快速排序法从小到大排序输出。
输入样例:
49 38 65 97 76 13 27 49 20
输出样例:
13 20 27 38 49 49 65 76 97
程序代码:
#include<iostream>
using namespace std;
void quicksort(int r[],int start,int end);
int main()
{
int a[9];
for(int i=0;i<9;i++)
cin>>a[i];
quicksort(a,0,8);
for(int i=0;i<9;i++)
cout<<a[i]<<' ';
return 0;
}
void quicksort(int r[],int start,int end)
{
int i=start;
int j=end;
int temp=r[start];
if(i<j)
{
while(i!=j)
{
while(i<j&&r[j]>=temp)
j--;
if(i<j)
{
r[i]=r[j];
i++;
}
while(i<j&&r[i]<temp)
i++;
if(i<j)
{
r[j]=r[i];
j--;
}
}
r[i]=temp;
quicksort(r,start,i-1);
quicksort(r,i+1,end);
}
}
执行结果: