读书人

快速排序后半部分不管用 高手帮小弟我

发布时间: 2012-10-21 09:00:07 作者: rapoo

快速排序后半部分不管用 高手帮我看一下 谢啦
#include<iostream>
using namespace std;
int Quicksort(int r[],int,int );
void cycle(int r[],int low,int high);
int main()
{
int a[11]={0,40,14,38,74,96,65,8,49,55,0},h=10,l=1;

Quicksort(a,l,h);
for(int i=1;i<10;i++)
cout<<a[i]<<endl;
return 0;
}
int Quicksort(int r[],int low ,int high)
{
r[0]=r[low];
int key=r[low];
while(low<high)
{
while(low<high&&r[low]<key)
low++;
r[high]=r[low];
while(low<high&&r[high]>=key)
high--;
r[low]=r[high];
}
r[low]=r[0];
return low;

}
void cycle(int r[],int low,int high)
{
if(low<high)
{
int point=Quicksort(r,low,high);
cycle(r,low,point-1);
cycle(r,point+1,high);
}

}

[解决办法]
Quicksort(a,l,h);应该是cycle(a,l,h);

读书人网 >C++

热点推荐