快速排序
时间: 2023-06-21 16:23:53 浏览: 162
快速排序的
快速排序是一种常用的排序算法,采用了分治的思想。具体实现步骤如下:
1. 选择一个基准数(pivot),一般选择第一个数。
2. 将小于基准数的数放在基准数左侧,大于基准数的数放在右侧。
3. 对左右两个子序列分别重复上述过程,直到每个子序列只剩下一个数或为空。
下面是一份示例代码:
```
void quick_sort(int arr[], int left, int right) {
if (left >= right) {
return;
}
int pivot = arr[left];
int i = left, j = right;
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
arr[i] = arr[j];
while (i < j && arr[i] <= pivot) {
i++;
}
arr[j] = arr[i];
}
arr[i] = pivot;
quick_sort(arr, left, i - 1);
quick_sort(arr, i + 1, right);
}
```
该代码使用了递归实现快速排序,时间复杂度为O(nlogn)。
阅读全文