给我写一个快速排序代码
时间: 2023-10-18 14:18:34 浏览: 28
以下是一个快速排序的Python实现:
```python
def quick_sort(arr):
if len(arr) <= 1: # 如果数组长度小于等于1,直接返回
return arr
else:
pivot = arr[0] # 选择第一个元素作为枢轴
less = [i for i in arr[1:] if i <= pivot] # 小于等于枢轴的元素
greater = [i for i in arr[1:] if i > pivot] # 大于枢轴的元素
return quick_sort(less) + [pivot] + quick_sort(greater) # 递归排序
```
快速排序的思路是选择一个枢轴,将数组分成两个部分,一部分是小于等于枢轴的元素,另一部分是大于枢轴的元素。然后对这两部分分别进行递归排序。最终将两部分排序好的数组和枢轴拼接起来即可得到完整的排序数组。
相关问题
给我写一个快速排序算法代码
// 以下是快速排序算法代码
def QuickSort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return QuickSort(left) + middle + QuickSort(right)
给我写一个快速排序的C++代码
当然,下面是一个快速排序的C++代码示例:
```cpp
#include <iostream>
using namespace std;
// 交换数组元素
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 将数组划分为两个子数组
int partition(int arr[], int low, int high) {
int pivot = arr[high]; // 选择最后一个元素作为基准
int i = low - 1; // 较小元素的指针
for (int j = low; j <= high - 1; j++) {
if (arr[j] < pivot) {
i++;
swap(&arr[i], &arr[j]);
}
}
swap(&arr[i + 1], &arr[high]);
return (i + 1);
}
// 快速排序函数
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
// 打印数组
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++)
cout << arr[i] << " ";
cout << endl;
}
int main() {
int arr[] = {10, 7, 8, 9, 1, 5};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "原始数组:";
printArray(arr, n);
quickSort(arr, 0, n - 1);
cout << "排序后的数组:";
printArray(arr, n);
return 0;
}
```
这是一个基本的快速排序算法实现。在这个示例中,我们使用最后一个元素作为基准元素,并通过递归调用将数组划分为两个子数组,然后对子数组进行排序。最后,我们打印出排序后的数组。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)