#include <stdio.h>
void quick_sort(int* a, int left, int right)
{
if (NULL == a || left >= right)
return;
int i = left;
int j = right;
int key = a[left];
while (i < j)
{
while (i < j && key <= a[j])
{
j--;
}
a[i] = a[j]; // 覆盖
while (i < j && key >= a[i])
{
i++;
}
a[j] = a[i];
}
a[i] = key;
quick_sort(a, left, i - 1);
quick_sort(a, i + 1, right);
}
int main()
{
int a[] = {49, 38, 65, 97, 76, 13, 27, 49};
int left = 0;
int right = sizeof(a) / sizeof(a[1]);
quick_sort(a, left, right - 1);
for (int i = 0; i < right; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
快速排序实例
最新推荐文章于 2022-12-01 20:51:53 发布