void Swap50(int *p1, int *p2)
{
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
void show51(int *p, int length)
{
printf("\n");
for (int *px = p; px < p + length; px++)
{
printf("%d ", *px);
}
}
void QuickSort(int *arr, int ileft, int iright, int length)
{
int i = ileft;//从左边开始循环
int j = iright + 1;//从右边开始循环
if (i < j)
{
do
{
do
{
i++;
} while (arr[i] <= arr[ileft] && i <= iright);
do
{
j--;
} while (arr[j] >= arr[ileft] && j > ileft);
if (i < j)
{
swap(&arr[i], &arr[j]);
//show51(arr, length);
}
} while (i < j);
swap(&arr[ileft], &arr[j]);
QuickSort(arr, ileft, j - 1, 0);
QuickSort(arr, j + 1, iright, 0);
}
}
void main()
{
int num[10] = { 12, 36, 98, 76, 53, 21, 3, 4, 56, 89 };
printf("原数组序列:\n");
show51(num, 10);
printf("\n排序后的数组序列:\n");
QuickSort(num, 0, 10 - 1, 10);
show51(num, 10);
system("pause");
}
更多资料 · 微信公众号搜索【CTO Plus】关注后,获取更多,我们一起学习交流。
关于公众号的描述访问如下链接