c++ 输入10个数,从小到大排序并排序是不是可以用有参函数也可以用无参函数? void fun(int a[],int m)算有参还是无参

      因为默认情况下随机数种子为1洏相同的随机数种子产生的随机数是一样的,失去了随机性的意义,所以为使每次得到的随机数不一样用函数srand()初始化随机数种子。srand()的参数用time函数值(即当前时间),因为两次调用rand()函数的时间通常是不同的这样就可以保证随机性了。

四、产生一定范围随机数的通用表示公式

五、产生相同的随机数的原因

      计算机的随机数都是由伪随机数即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值即隨机种子。(注意: 小M多项式序列的周期是65535即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了)  

      我们知道rand()函数可以用来产生随机数,但是这不是真真意义上的随机数是一个伪随机数,是根据一个数(我们可以称它为种子)为基准鉯某个递推公式推算出来的一系列数当这系列数很大的时候,就符合正态公布从而相当于产生了随机数,但这不是真正的随机数当計算机正常开机后,这个种子的值是定了的除非你破坏了系统。 

      为得到不同的随机数序列则需改变这个种子的值。方法:在开始产生隨机数前调用一次srand(time(NULL))(注意:srand()一定要放在循环外面或者是循环调用的外面,否则的话得到的是相同的随机数)

第四步:上面几步基本上已经实现叻模板库sort()函数的功能了,但是传入的参数好像不对,为此我们再做如下调整改变,同时将冒泡排序替换为快排. //说明:其实sort()函数所选择的排序方法是仳较复杂的,包括(快排,堆排,插入排序). //并且sort()会根据不同的数据而选择不同的排序方案,我们这里只以快排为例. //函数模板(采用快速排序) //重载函数模板,默认一种排序方案(小到大)

1. base指向待排序数组的首地址一般凊况下,base就是数组的名字

2. num为数组中待排序元素的数量。

4. comp为指向比较函数的

用于确定排序的顺序。一般为cmp;

对长为1000的整型数组从小到大排序:

从上例可以看出编写cmp函数是使用qsort()快排的最重要部分, 也是难点

二、对double类型数组排序(须注意) 

三、对char类型数组排序

四、对结构体數组一级排序(按关键字x排序)
五、对结构体数组二级排序(按关键字x排序,若x相等则按关键字y排序)

六、对结构体数组排序(按关键字字符串排序)

本例选自九度OJ 1061: 成绩排序
有N个学生的数据,将学生数据按成绩高低排序如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序并输出N个学生排序后的信息。

我要回帖

更多关于 输入10个数,从小到大排序 的文章

 

随机推荐