上述要求能否不使用qsort函数
时间: 2024-12-09 11:16:42 浏览: 14
当然可以,如果你不想使用`qsort`函数,你可以选择自己编写一个冒泡排序、插入排序、选择排序或其他自定义排序算法。这里以冒泡排序为例,假设你有一个指向字符串的指针数组:
```cpp
#include <string>
void bubbleSortStrings(char** strings, int n) {
for(int i = 0; i < n - 1; i++) {
for(int j = 0; j < n - 1 - i; j++) {
// 使用strcmp比较字符串
if(strcmp(strings[j], strings[j+1]) > 0) {
// 交换位置
std::swap(strings[j], strings[j+1]);
}
}
}
}
int main() {
char* strArr[] = {"banana", "apple", "cherry", "date"};
int len = sizeof(strArr) / sizeof(strArr[0]);
bubbleSortStrings(strArr, len);
for(int i = 0; i < len; i++) {
std::cout << i+1 << ". " << strArr[i] << std::endl;
}
return 0;
}
```
这段代码实现了冒泡排序,每次循环都会通过比较相邻的字符串,并根据需要交换它们的位置。这种方法虽然简单,但对于较大的数据集效率较低。
阅读全文