00问答网
所有问题
数据结构(用c语言描述),是随机快速排序算法,划红线部分那里我不懂,希望有学霸能解释一下,越详细越好?
我把图放下面,多谢了
举报该问题
推荐答案 2021-02-26
这是一个randomi的函数,作用是返回一个随机值,在1到r之间。
return后面那个公式就是返回的随机数字。
1*rand()是随机得到一个数字,在除以RAND_MAX得到的是一个随机的百分比。
RAND_MAX就是rand()的范围大小。
随机百分比得到了,在乘(r-1)就得到这个(r-1)范围内随机比例。
最后再加上1保证得到的数字是在1和r之间的。
这样就能输出一个随机数字了。
精髓是后面那个除法得到一个随机的比例,前面的乘法和加法都是为了限定范围的修修补补。
追问
好的,多谢,懂了
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/rIIZDeBIDZ0erZnrej.html
其他回答
第1个回答 2021-02-26
rand函数产生的随机整数的范围是[0,RAND_MAX]。
其中,RAND_MAX是一个预定义的宏,其值等于int类型的最大值。
所以,1.0*rand()/RAND_MAX的结果的范围是[0,1],
(r-l)*(1.0*rand()/RAND_MAX)的结果的范围是[0,r-l],
而l+(r-l)*(1.0*rand()/RAND_MAX)的结果的范围就是[l,r]。
这就是一个公式,用来产生[l,r]之间的随机整数的。
追问
好的,懂了,多谢
追答
采纳下呗
本回答被提问者采纳
相似回答
C语言
十大经典
排序算法(
动态演示+代码,值得收藏)
答:
1. 冒泡排序这一经典算法以交换相邻元素的方式,逐个比较并调整,就像泡泡在水面上浮起。平均/最差时间复杂度为O(n^2),空间复杂度为O(1),但稳定性使其在某些场景下依然有其优势。2. 选择排序选择排序犹如寻宝游戏,它在未
排序部分
中挑选出最小(或最大)的元素,将其放置在已排序序列的末尾。...
数据结构(c语言)
中快速排序什么时候排序最慢,什么情况下
使用快速排序
...
答:
当待排序的序列已经有序(不管是升序还是降序),此时快速排序最慢,一般当数据量很大的时候,用快速排序比较好,为了避免原来的序列有序,一般采用改进的
快速排序算法,
在排序之前随机交换两个元素的位置,就可以达到目的了,有一本书,叫《算法设计、分析与实现:C、C++和java》徐子珊著。可以看看,里面...
本人求
快速排序
代码
(C语言),
并能够在VC6.0上直接运行。
希望
代码能够清 ...
答:
/* 递归 对划分后的前后两个 部分再次进行一趟
排序
/
关于
数据结构
的问题
,用C语言描述
答:
1.栈、队列的定义及其相关
数据结构
的概念,包括:顺序栈,链栈,共享栈,循环队列,链队等。栈与队列存取数据(请注意包括:存和取两
部分)
的特点。2.递归算法。栈与递归的关系,以及借助栈将递归转向于非递归的经典算法:n!阶乘问题,fib数列问题,hanoi问题,背包问题,二叉树的递归和非递归遍历问题,图的深度遍历与栈的...
大家正在搜
数据结构实现快速排序算法
数据结构快速排序怎么排
数据结构快速排序图解
快速排序算法c语言
快速排序算法c语言实现
数据结构实现快速排序
数据结构快速排序过程
数据结构冒泡排序算法
数据结构排序算法比较
相关问题
数据结构(用c语言描述),图片上划红线那两行我看不是很懂,希...
数据结构(用c语言描述)的课后习题,萌新不会,有学霸可以解惑...
求c语言高手,本人已自学完c语言基础,现在在学数据结构 算法...
关于数据结构的问题,用C语言描述
这是一道数据结构与算法(C语言版)的题目,希望大家能帮我看看...
《数据结构》中“排序”的题,是C语言版的,希望高人能供尽量详...
C语言谁能告诉我 数据结构和算法里 快速排序 是怎么弄的?定...
数据结构C语言——实现各种排序算法