QT快速排序

使用快速排序例程进行排序
1、正常排序

QList<QString> strlist ;
strlist << "99" << "1" << "86" << "52";
std::sort(strlist.begin(), strlist.end());

//strlist = {"1", "52", "86", "99"}

2、int 类型排序 可重写倒序排列或顺序排列

/**
 * @brief IntSort std:sqrt  倒序排序 最大值在前面
 */
static struct IntSorting {
  bool operator() (int i,int j) { return (i>j);}
} IntSort;
void MainWindow::MaxNum()
{
    QMap<int, int> maxValue; // 用map记录最大值的{位置, 最大值}
    QList<int> list = {1,2,3,2,4,2,7,2,4,6,2,7}; // 原数组
    QList<int> copyList = list; // 用来排序原数组
    std::sort(copyList.begin(), copyList.end(), IntSort); // 快速排序
    qDebug() << copyList;
    for (int i = 0; i < list.size(); ++i) {
        if(list.at(i) == copyList[0]) // 判断当前值跟最大值是否一致
        {
            // 记录位置
            maxValue.insert(i, list.at(i));
        }
    }
    qDebug() << maxValue;
}
分享

3.235.74.184