Qt中用qSort()快速排序例程进行排序
void MainWindow::on_pushButton_2_clicked()
{
//QStringList 自动排序去重
QStringList Read_Time;
//产生[0,10)中的随机数10个
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
for(int i=0; i<10; i++)
{
QString num;
int test =qrand()%10;
//保留2位数,不足的补零
num = num.sprintf("%02d",test);
Read_Time<<num;
}
//显示产生的随机数
qDebug()<<" start Read_Time = "<<Read_Time;
//自动排序的处理过程
QSet<QString> set = Read_Time.toSet();//是字符串链表内容不重复
qDebug()<<" set = "<<set;
QList<QString> list = QList<QString>::fromSet(set);//链表内容重新排序。默认递增
qDebug()<<" list = "<<list;
//调用函数排序
qSort(list);
qDebug()<<"Read_Time"<<list<<"size =" <<list.size();
//覆盖原来的链表内容
Read_Time = list;
qDebug()<<" OFF Read_Time = "<<Read_Time;
}
运行结果:
start Read_Time = (“02”, “01”, “06”, “06”, “08”, “04”, “06”, “00”, “03”, “04”)
set = QSet(“08”, “00”, “01”, “02”, “03”, “04”, “06”)
list = (“08”, “00”, “01”, “02”, “03”, “04”, “06”)
Read_Time (“00”, “01”, “02”, “03”, “04”, “06”, “08”) size = 7
OFF Read_Time = (“00”, “01”, “02”, “03”, “04”, “06”, “08”)