zoukankan      html  css  js  c++  java
  • 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;
            }
    

      

    第一种速度最快,第二种次之,第三种最慢

  • 相关阅读:

    tomcat 和jboss区别
    python好文章
    CUBRID学习笔记 34 net参数化查询 cubrid教程示例
    CUBRID学习笔记 33 net事务 cubrid教程示例
    CUBRID学习笔记 32 对net的datatable的支持 cubrid教程
    CUBRID学习笔记 31 通过select创建表
    CUBRID学习笔记 30 复制表结构 cubrid教程
    CUBRID学习笔记 29 web管理中文语言文件 CUBRID教程
    CUBRID学习笔记 28 执行sql脚本文件
  • 原文地址:https://www.cnblogs.com/dreamman/p/5591839.html
Copyright © 2011-2022 走看看