请用C++给我编写STL函数库里的sort函数
时间: 2024-05-16 11:15:51 浏览: 14
好的,下面是一个简单的基于快速排序的sort函数的C语言实现:
```c
#include <stdio.h>
// 交换两个数的值
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 快速排序
void quickSort(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--;
if (i < j) arr[i++] = arr[j];
while (i < j && arr[i] < pivot) i++;
if (i < j) arr[j--] = arr[i];
}
arr[i] = pivot;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
// STL中的sort函数
void sort(int arr[], int n) {
quickSort(arr, 0, n - 1);
}
int main() {
int arr[] = {5, 3, 8, 6, 2, 7, 1, 4};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这里我们使用了快速排序算法来实现sort函数,其实现步骤与常规的快速排序算法基本一致。在sort函数中,我们只需要传入待排序的数组和数组长度,然后调用quickSort函数进行排序即可。