如何使用“快速排序”对字符串数组进行排序

时间:2016-06-09 06:05:05

标签: c++ algorithm sorting quicksort

我想使用快速排序 (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()函数。

1 个答案:

答案 0 :(得分:1)

您需要创建一个比较2个字符串的比较函数,并将其用作qsort中的最后一个参数。 在这里阅读更多关于这个功能 http://www.cplusplus.com/reference/cstdlib/qsort/?kw=qsort