为了账号安全,请及时绑定邮箱和手机立即绑定

怎么用C++设计一个让一组数字随机排列的算法,数字不重复使用

怎么用C++设计一个让一组数字随机排列的算法,数字不重复使用

C++
慕田峪3750655 2016-09-23 18:02:41
查看完整描述

2 回答

已采纳
?
Crafon

TA贡献63条经验 获得超30个赞

方法有许多:

  1. 方法一,也是最笨的方法,在你选定的范围内随机获得一个数,判断在你要保存的数组里有没有这个数,没有就存进去,有就一直循环直到找到不重复的为止

  2. 方法二,先随机出已知数组的下标值,然后取出这个数放到另一个数组中,再从已知数组中删除这个数

  3. 方法三,将随机得到的这个数和数组最后一个数交换。然后再从array.length-1中随机一个数和array.length-1交换

    三种方法中最后一个是最佳的,运算次数最少。

     望采纳~

查看完整回答
2 反对 回复 2016-09-23
  • 慕田峪3750655
    慕田峪3750655
    第三个方法可以给个实例吗
  • Crafon
    Crafon
    int length = array.length(); Random random = new Random(); while(length>2) { swap(random.nextInt(length-2), length-1, array); length- -; } swap函数自己定义,就是交换数组array中的两号元素
  • 慕田峪3750655
    慕田峪3750655
    Random是哪个头文件的,怎么用的。。
点击展开后面1
  • 2 回答
  • 0 关注
  • 2598 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信