Qt实现数组的乱序排列

核心代码很短,如下

#include <QTime>

void LuanXu(int a[], int length)//数组元素的乱序排列
{
    for(int i=0;i<length;i++)
    {
        QTime t;
        t= QTime::currentTime();
        qsrand(t.msec()+t.second()*1000);
        int r = i+qrand()%(length-i);
        int temp=a[i];
        a[i]=a[r];
        a[r]=temp;
    }
}

关键是每次生成指定范围的随机数。

qrand()函数用于产生随机数,qrand()0产生0-100的随机数,qrand()产生0-10的随机数。

乱序排列的原理是从有N个数的数组的第一个数开始,随机选择数组中的数作为第一个数,然后将第一个数放到后面的位置。这样下面就是同样的对N-1个数的数组进行乱序排列。循环结束就完成了。

 

运行效果如图:

Qt实现数组的乱序排列

Qt实现数组的乱序排列

Qt实现数组的乱序排列









 

原文地址:https://www.cnblogs.com/jwchen08/p/5942532.html