恭喜,你发布的帖子
发布于 2023-12-06 08:40:48
22楼
感谢指点,这段代码似懂非懂,对数组操作不太明白,能否详细说一下。谢谢。
array[] 是输出队列,这个简单,新生成的放在 currentLen + 1 位置,currentLen 类似指针,指向最新生成的数据
主要是生成的随机数是否重复的判断,前文提过最简单的不是冒泡之类的排序后用二分法判断,而是数组
假设
第一次,random = 8, 此时 sw[8] = false,说明 8 不重复,添加到队列,同时置位 sw[8] = true
同理 第二次、第三次 分别得到随机数 10,5,那同样置位 sw[10]、sw[5] 为 true;
第四次,得到随机数 10,此时 sw[10] 为 true,说明 10 已经生成过,就不用添加到 array 中了
请填写推广理由:
分享
只看
楼主