C语言快速排序
#include <stdio.h>
#define ElemType int
void QuickSort(ElemType a[],int low,int high);
int Partition(ElemType a[],int low,int high);
int main(){
ElemType a[] = {231,12,34,4,25,61};
QuickSort(a,0,5);
ElemType *p = a;
for(int i=0;i<sizeof(a)/sizeof(a[0]);i++){
printf("%d ",a[i]);
}
return 0;
}
void QuickSort(ElemType a[],int low,int high)
{
if(low<high){
int povit_pos = Partition(a,low,high);
QuickSort(a,povit_pos+1,high);
QuickSort(a,low,povit_pos-1);
}
}
int Partition(ElemType a[],int low,int high)
{
ElemType pivot = a[low];
while(low<high){
while(low<high && a[high]>=pivot){
high--;
}
a[low] = a[high];
while(low<high && a[low]<=pivot){
low++;
}
a[high] = a[low];
}
a[low] = pivot;
return low;
}