#include <stdio.h>
int Partition(int *iArray, int i, int j)//划分
{
int pivot = iArray[ i ];
while(i < j)
{
while(i < j && iArray[ j ] >= pivot )
{
j --;
}
if(i < j)
{
iArray[ i ++ ] = iArray[ j ];
}
while(i < j && iArray[ i ] <= pivot)
{
i ++;
}
if(i < j)
{
iArray[ j -- ] = iArray[ i ];
}
}
iArray[ i ] = pivot;
return i;
}
void QuickSort(int *iArray, int low, int high)
{
if(low < high)
{
int pivotpos = Partition(iArray, low, high);
QuickSort(iArray, low, pivotpos - 1);
QuickSort(iArray, pivotpos + 1, high);
}
}
int main()
{
int iArray[] = {1,0,9,3,7,2,-90,78,45,4,77,79,78,37,0,-1,2,3,6,9,5,4,78,78,78,1,1,1};
int len = sizeof(iArray) / sizeof(int);
QuickSort(iArray, 0, len - 1);
for(int i = 0; i < len; ++ i)
{
printf("%3d ",iArray[ i ]);
}
printf("\n");
}
[排序]快速排序
最新推荐文章于 2014-09-18 10:50:55 发布