随便写个快排吧
基本的
#include "stdio.h"
int Partion(int *data,int s,int e)
{
int i=s;
int temp;
int k=s-1;
int v = data[e];
for(i=s;i<e;i++)
{
if(data[i]<data[e])
{
temp = data[i];
data[i] = data[k+1];
data[k+1] = temp;
k+=1;
}
}
temp = data[k+1];
data[k+1]=v;
data[e]=temp;
return k+1;
}
void quickSort(int *data,int s,int e)
{
int q;
if(s<e)
{
q = Partion(data,s,e);
quickSort(data,s,q-1);
quickSort(data,q+1,e);
}
}
int main()
{
int data[] = {1,3,5,6,3,7,8,34,234};
int len = sizeof(data)/sizeof(data[0]);
int i=0;
quickSort(data,0,len-1);
for(i=0;i<len;i++)
printf("%d ",data[i]);
return 0;
}
当然快排要想达到最好情况 需要随机选择参考变量