我想使用快速排序 (std::qsort(arg,arg,arg))
代替(std::sort(arg,arg,arg))
来排序字符串数组s[ ]
。
那么我还需要在以下代码中更改。
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main(){
int t;
scanf("%d",&t);
while (t--) {
char x[1010];
string s[1010];
scanf("%s", x);
int len = strlen(x);
s[len] = "";
for(int i = len - 1; i >= 0; --i) {
s[i] = x[i];
s[i] += s[i+1];
}
// s[] now contains len number of strings
sort(s, s + len); // So its here where I want to use qsort
}
return 0;
}
我需要将所有参数传递给qsort(;;)
。 AND 如何为快速排序编写cmp()函数。
答案 0 :(得分:1)
您需要创建一个比较2个字符串的比较函数,并将其用作qsort中的最后一个参数。 在这里阅读更多关于这个功能 http://www.cplusplus.com/reference/cstdlib/qsort/?kw=qsort