C# 生成随机索引列表
/// <summary>
/// 生成随机索引列表
/// </summary>
/// <param name="maxNumber"></param>
/// <returns></returns>
private static List<int> CreateRandomNumbers(int maxNumber)
{
var array = new int[maxNumber];
for (var i = 0; i < maxNumber; i++)
{
array[i] = i;
}
var rnd = new Random();
for (var i = 0; i < maxNumber; i++)
{
var index = rnd.Next(0, maxNumber);
if (i != index)
{
var tmpval = array[i];
array[i] = array[index];
array[index] = tmpval;
}
}
var list = new List<int>();
for (var i = 0; i < maxNumber; i++)
{
list.Add(array[i]);
}
return list;
} /// <summary>
/// 生成随机索引列表
/// </summary>
/// <param name="maxNumber"></param>
/// <returns></returns>
private static List<int> CreateRandomNumbers2(int maxNumber)
{
List<int> list = new List<int>();
Random rd = new Random();
while (list.Count() < maxNumber)
{
int i = rd.Next(0, maxNumber);
if (!list.Contains(i))
{
list.Add(i);
}
}
return list;
} /// <summary>
/// 生成随机索引列表
/// </summary>
/// <param name="maxNumber"></param>
/// <returns></returns>
private static List<int> CreateRandomNumbers2(int maxNumber)
{
var array = new int[maxNumber, 2];
var index = maxNumber - 1;
var rnd = new Random();
while (index > 0)
{
array[index, 0] = index;
array[index, 1] = rnd.Next(0, maxNumber);
index--;
}
var list = new List<int>();
for (var i = 0; i < maxNumber; i++)
{
for (var j = i + 1; j < maxNumber; j++)
{
if (array[i, 1] > array[j, 1])
{
var tIndex = array[i, 0];
var tValue = array[i, 1]; array[i, 0] = array[j, 0];
array[i, 1] = array[j, 1]; array[j, 0] = tIndex;
array[j, 1] = tValue;
}
}
}
for (var i = 0; i < maxNumber; i++)
{
list.Add(array[i, 0]);
}
return list;
}
第一种速度最快,第二种次之,第三种最慢
C# 生成随机索引列表的更多相关文章
- <每日一题>题目28:生成随机的测验试卷(单选题)
#项目:生成随机的测验试卷文件 import random #资料库 capitals = {'北京市':'京','上海市':'沪','天津市':'津','重庆市':'渝','河北省':'冀','山西 ...
- PHP生成随机水印图片
基于PHP的GD图形库,自己生成一张图片.仅限初识GD库,实例学习. 一.需求 网站的布局用到了类似慕课网课程列表的风格,每一个课程是一个banner图,图下面是标题加简介.因为课程的数量较大没有为所 ...
- Framework7 索引列表插件的问题
前言 Framework7 作为移动端的开发框架的优良之处已经无需多言.现在已经有了 React 和 Vue 版本,之前在项目中用过 F7 + vue 的开发方式,无论是效率还是产出都近乎完美.有时间 ...
- 利用Java随机,生成随机学生数据
为模拟向数据库中大量插入学生数据(注:此处应该用PreparedStatement.batchUpdate等批处理提高效率)的情形,通过Java随机来生成学生数据. 一.要生成的学生数据 studen ...
- Framework7 索引列表插件的异步加载实现
前言 Framework7 作为移动端的开发框架的优良之处已经无需多言.现在已经有了 React 和 Vue 版本,之前在项目中用过 F7 + vue 的开发方式,无论是效率还是产出都近乎完美.有时间 ...
- Python生成随机验证码,大乐透号码
实例笔记之生成随机号码 扩展知识 - yield(生成器) 随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__' ...
- 利用Masscan批量生成随机ip地址表
简介 Masscan是Kali下集成的高效扫描器,和nmap命令有很多相似之处 命令生成随机ip masscan -sL 10.0.0.0/24 > c段.txt masscan -sL 10. ...
- C# 生成随机的6位字母,包含大小写
今天自己做项目需要生成随机的6位字母,于是自己写了一个,下面代码是可以生成任意位数字母的. string _zimu = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg ...
- Python生成随机数组的方法小结
Python生成随机数组的方法小结 本文实例讲述了Python生成随机数组的方法.分享给大家供大家参考,具体如下: 研究排序问题的时候常常需要生成随机数组来验证自己排序算法的正确性和性能,今天把Pyt ...
随机推荐
- 深入理解JVM(七)——性能监控工具
前言 工欲善其事必先利其器,性能优化和故障排查在我们大都数人眼里是件比较棘手的事情,一是需要具备一定的原理知识作为基础,二是需要掌握排查问题和解决问题的流程.方法.本文就将介绍利用性能监控工具,帮助开 ...
- 算法与数据结构(十二) 散列(哈希)表的创建与查找(Swift版)
散列表又称为哈希表(Hash Table), 是为了方便查找而生的数据结构.关于散列的表的解释,我想引用维基百科上的解释,如下所示: 散列表(Hash table,也叫哈希表),是根据键(Key)而直 ...
- Java中的读写锁
一.读写锁 1.初识读写锁 a)Java中的锁——Lock和synchronized中介绍的ReentrantLock和synchronized基本上都是排它锁,意味着这些锁在同一时刻只允许一个线程进 ...
- LeetCode724. 寻找数组的中心索引
1.题目描述 给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法. 我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和. 如果数组不存在中 ...
- JDK设计模式之——装饰者模式
假定已经有三个类A,B和C他们的继承关系如下 ClassA Class B extends A Class C extends A 想进一步扩展类B和类C的功能,新增三个方法 m ...
- 【Spark篇】--Spark中的宽窄依赖和Stage的划分
一.前述 RDD之间有一系列的依赖关系,依赖关系又分为窄依赖和宽依赖. Spark中的Stage其实就是一组并行的任务,任务是一个个的task . 二.具体细节 窄依赖 父RDD和子RDD parti ...
- Java如何在运行时识别类型信息?
在日常的学习工作当中,有一些知识是我们在读书的时候就能够习得:但有一些知识不是的,需要在实践的时候才能得到真知——这或许就是王阳明提倡的“知行合一”. 在Java中,并不是所有的类型信息都能在编译阶段 ...
- xtrabackup备份
增量备份: xtrabackup --backup --target-dir=/data/backup/base --datadir=/var/lib/mysql xtrabackup --backu ...
- 使用Redmine的PHP API时,如何判断需求是否为原子需求
使用Redmine的PHP API时,如何判断需求是否为原子需求 使用redmine的PHP接口时,怎样才能判断需求是否为原子需求呢,下面给出具体的做法: /** * 判断是否为原子需求, 即是否依然 ...
- 基于IdentityServer4 实现.NET Core的认证授权
IdentityServer4是什么? IdentityServer4是基于ASP.NET Core实现的认证和授权框架,是对OpenID Connect和OAuth 2.0协议的实现. OpenID ...