用C++自己实现qsort函数
时间: 2023-12-06 10:45:26 浏览: 96
好的,下面是使用C++实现qsort函数的示例代码:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
// 比较函数
int cmp(const void *a, const void *b) {
return *(int*)a - *(int*)b;
}
int main() {
const int n = 10;
int arr[n];
// 随机生成数组
srand((unsigned)time(NULL));
for (int i = 0; i < n; i++) {
arr[i] = rand() % 100;
cout << arr[i] << " ";
}
cout << endl;
// 排序
qsort(arr, n, sizeof(int), cmp);
// 输出排序后的数组
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
这里我们使用了STL中的qsort函数进行排序,需要传入待排序的数组、数组元素数量、每个元素的大小以及比较函数。在比较函数中,我们将两个元素强制转换为int类型指针并且返回它们的差值,这样就可以按照升序排列了。
当然,如果你想自己手写快排函数,也是可以的。
阅读全文