#include <stdio.h>
//将Int数组a中的第i个元素和第j个元素互换
void swap(int a[],int i,int j)
{
int tmp = a[i];
a[i] = a[j];
a[j] =tmp;
}
//以第一个元素作为划分,将它放入中间
int partition(int a[],int start,int end)
{
int i = start;
int j = end + 1;
int x = a[start];
while (1)
{
while (a[++i]<x);
while (a[--j]>x);
if (i>=j)
break;
swap(a,i,j);
}
a[start] = a[j];
a[j] = x;
return j;
}
void quickSort(int a[],int start,int end)
{
if (start<end)
{
int q = partition(a,start,end);
quickSort(a,start,q-1);
quickSort(a,q+1,end);
}
}
void main()
{
int a[] = {4,2,1,5,3};
quickSort(a,0,4);
for (int i=0;i<5;i++)
{
printf("%d ",a[i]);
}
}
最简单的快速排序代码
最新推荐文章于 2024-08-13 09:00:00 发布