是让用递归编的快速排序,用的是vc的helloword,大家帮帮我,明天就要交了。。。
// 5_24.cpp : Defines the entry point for the console application.
//快速排序
#include "stdafx.h"
#include <iostream.h>
#include <conio.h>
void partition(int [],int,int);
void quickSort(int [],int,int);
int xiao;
int main()
{
const int geshu=10;
int a[geshu]={110,2,3,6,4,5,7,8,10,9};
cout<<"Ten numbers is:"<<endl;
for(int i=0;i<geshu;i++)
cout<<a[i]<<" ";
cout<<endl;
quickSort(a,0,geshu-1);
for(int g=0;g<geshu;g++)
cout<<a[g]<<" ";
cout<<endl;
getch();
return 0;
}
void partition(int x[],int low,int high)
{
int middle1,middle2,cishu,shi;
do
{
cishu=0;
shi=0;
if(cishu==0)
{
for(int j=high;j>low;j--)
{ //第一个数和最后的比较,如果有比它小的就和它换位置
if(x[low]>x[j])
{
middle1=x[low];
x[low]=x[j];
x[j]=middle1;
cishu=1;
xiao=j;
high=j;
shi=1;
break;
} //当有了一次换位后跳出
}
}
else
{
for(int m=low;m<high;m++)
{ //再把那个数和它前面的比较,如果有比它大的,就换位置
if(x[high]<x[m])
{
middle2=x[high];
x[high]=x[m];
x[m]=middle2;
cishu=0;
xiao=m;
low=m;
shi=1;
break;
} //当有了一次换位后跳出
}
}
}while(shi==1); //只要还有换位就继续
}
void quickSort(int z[],int star,int end){
if(star<end)
{
partition(z,star,end);
quickSort(z,star,xiao-1);
quickSort(z,xiao+1,end);
}
}