用 C 语言练习一下快速排序算法, 今天给记录到文章中方便以后随时随地查看😄, 主要有一个交换数组两个元素和快速排序的升序和降序两种情况;
快速排序
void quickSort(int *list, int left, int right) {
if (left >= right) { return; }
int i = left;
int j = right;
int key = list[i];
while (i < j) {
while (i < j && list[j] >= key) {
j--;
}
swap(list, i, j);
while (i < j && list[i] <= key) {
i++;
}
swap(list, i, j);
}
list[i] = key;
quickSort(list, left, i-1);
quickSort(list, i+1, right);
}
注意:
swap函数参照 交换数组元素的位置 这篇文章降序: 需要完成如下两步即可
list[j] >= key改成list[j] <= keylist[i] <= key改成list[i] >= key