博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个随机排序集合的思考
阅读量:6822 次
发布时间:2019-06-26

本文共 1264 字,大约阅读时间需要 4 分钟。

我是让已知一个数组的元素随机排列,我开始到网上搜搜,代码如下:

private static List
RaD(List
strTemp) { List
newList = new List
(); Random r = new Random(); while (true) { int i = r.Next(0, strTemp.Count); if (!newList.Contains(strTemp[i])) newList.Add(strTemp[i]); if (newList.Count == strTemp.Count) break; } return newList; }

大多数都是使用Contains看是否包含,不包含在新集合才添加,但是个人感觉每次都检索一下新数组里面有木有插入元素,这样遍历新数组岂不是很多次,于是我修改了下,我的思路是随机生成一个数,将其添加新数组,然后删除这个数,在添加,代码如下:

private static List
RaD2(List
strTemp) { List
newList = new List
(); Random random = new Random(); for (int i = 0; i < strTemp.Count;) { int r = random.Next(0, strTemp.Count); newList.Add(strTemp[r]); strTemp.RemoveAt(r); } return newList; }

个人感觉这样的效率更好,减少了遍历次数,增加的是每次删除元素的操作。以上是个人理解,不知道有木有什么更快的效率更好的方法随机排序集合??欢迎大家拍砖!!

转载于:https://www.cnblogs.com/Yukang1989/archive/2012/10/31/2748568.html

你可能感兴趣的文章
android 配置framework 使应用首选安装在SD卡
查看>>
h5 点击表单 顶部fixed 菜单栏 上移
查看>>
windows 2008 R2 64位系统杀毒软件
查看>>
我的友情链接
查看>>
netty学习笔记
查看>>
更改win7文件类型默认操作
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Webgoat 笔记总结 Web Services
查看>>
Linux Mysql安装部署
查看>>
多线程 概述
查看>>
Nagios达到阈值时发不出告警邮件问题总结
查看>>
互联网公司应该要有的技术人员配置和开发事项清单
查看>>
Android开发中如何改变RadioButton背景图片和文字的相对位置
查看>>
如何给Linux (Fedora Ubuntu等)安装字体
查看>>
MySQL大小写敏感问题和命名规范
查看>>
java 获取时间 和 转换时间
查看>>
Redis主从复制
查看>>
mysql-5.6.26 主主复制
查看>>
SpringMVC权限管理
查看>>