C 预研快速排序
时间: 2023-07-01 19:28:16 浏览: 50
快速排序是一种高效的排序算法,它的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,然后再分别对这两部分记录继续进行排序,以达到整个序列有序的目的。
下面是 C 语言实现的快速排序代码示例:
```c
void quick_sort(int arr[], int left, int right) {
if (left < right) {
int i = left, j = right, pivot = arr[left];
while (i < j) {
while (i < j && arr[j] >= pivot) j--;
if (i < j) arr[i++] = arr[j];
while (i < j && arr[i] < pivot) i++;
if (i < j) arr[j--] = arr[i];
}
arr[i] = pivot;
quick_sort(arr, left, i - 1);
quick_sort(arr, i + 1, right);
}
}
```
这里将快速排序封装成了一个函数 `quick_sort`,其参数 `arr` 表示待排序的数组,`left` 和 `right` 分别表示数组的左右边界。在函数内部,使用 `i` 和 `j` 两个指针从两端同时扫描数组,找到第一个比 `pivot` 小的元素和第一个比 `pivot` 大的元素,并将它们交换。最终将 `pivot` 放置到中间位置,然后递归地对左右两个子数组进行排序。