快速排序是一种常用的排序算法。它的基本思想是:
- 选择一个基准数,将数组分成两部分。
- 将大于基准数的数放在数组的右边,小于基准数的数放在数组的左边。
- 对左右两部分分别使用快速排序。
以下是C语言实现的快速排序代码:
void quick_sort(int arr[], int left, int right) {
int i, j, pivot;
if (left < right) {
i = left;
j = right + 1;
pivot = arr[left];
do {
do i++; while (arr[i] < pivot);
do j--; while (arr[j] > pivot);
if (i < j) swap(arr[i], arr[j]);
} while (i < j);
swap(arr[left], arr[j]);
quick_sort(arr, left, j - 1);
quick_sort(arr, j + 1, right);
}
}
这段代码是将快速排序实现为一个递归函数。它首先选择数组的第一个数为基准数,然后使用两个指针对数组进行划分。最后,递归地调用快速排序函数对划分后的两个子数组进行排序。