帮我用C++写快速排序
时间: 2023-03-15 10:14:58 浏览: 63
我可以为你提供一个快速排序的C语言算法: void quicksort(int array[], int start, int end)
{
int pivot, i, j;
if (start < end)
{
pivot = start;
i = start;
j = end;
while (i < j)
{
while (array[i] <= array[pivot] && i <= end)
{
i++;
}
while (array[j] > array[pivot] && j >= start)
{
j--;
}
if (i < j)
{
swap(array[i], array[j]);
}
}
swap(array[j], array[pivot]);
quicksort(array, start, j-1);
quicksort(array, j+1, end);
}
}
相关问题
帮我用C++实现快速排序
当然可以,以下是快速排序的C语言实现代码:
```
#include <stdio.h>
void quick_sort(int arr[], int left, int right) {
if (left >= right) {
return;
}
int i = left, j = right, pivot = arr[left];
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);
}
int main() {
int arr[] = {5, 3, 8, 4, 2, 1, 9, 6, 7};
int len = sizeof(arr) / sizeof(arr[0]);
quick_sort(arr, 0, len - 1);
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这是一个基本的快速排序算法,时间复杂度为O(nlogn),可以对任意类型的数据进行排序。
帮我用c++写出快速排序代码
好的,这是一个快速排序代码:
#include <stdio.h>
#include <stdlib.h>
void quick_sort(int *arr, int left, int right) {
int i = left, j = right;
int pivot = arr[(left + right) / 2];
int temp;
/* partition */
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
}
/* recursion */
if (left < j)
quick_sort(arr, left, j);
if (i < right)
quick_sort(arr, i, right);
}
int main() {
int arr[] = {5, 2, 9, 1, 7, 6, 4, 3, 8};
int n = sizeof(arr) / sizeof(arr[0]);
quick_sort(arr, 0, n - 1);
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
注意:这段代码使用了 C99 标准,如果您的编译器不支持 C99,那么可能需要更改一些内容。此外,这份代码仅供参考,您可能需要自己根据需求调整代码。