排序–快速排序

#include
#include
#define N 1000
void quicksort(int * array,int left,int right);
void quicksort2(int * array,int left,int right);
void main()
{
 //int array[12]={3,2,5,1,3,9,8,7,3,6,10,20};
 
 int array[N]={0};
 for(int i=0;iprivot) r--;
 
  if(l>=r) break;
 
  temp=array[l];
  array[l]=array[r];
  array[r]=temp;
 
  if(array[l]==privot) --r;
  if(array[r]==privot) ++l;
 }
 
 if(l==r)
 {
  ++l;
  --r;
 }
 
 if(leftl) quicksort(array,l,right);
 
}
//以第一个数为基准
void quicksort2(int * array,int left,int right)
{
 int temp=array[left];
 int l=left;
 int r=right;
 while(l=temp) --r;
  array[l]=array[r];
  while(ll) quicksort2(array,l,right);
}


更多资源  http://www.17xuexiba.com

你可能感兴趣的:(c,排序)