C# 生成随机索引列表_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C# 生成随机索引列表

C# 生成随机索引列表

 2016/6/17 5:34:09  plugnt  程序员俱乐部  我要评论(0)
  • 摘要:///<summary>///生成随机索引列表///</summary>///<paramname="maxNumber"></param>///<returns></returns>privatestaticList<int>CreateRandomNumbers(intmaxNumber){vararray=newint[maxNumber];for(vari=0;i<maxNumber;i++)
  • 标签:C# 索引
class="brush:csharp;gutter:true;">        /// <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;
        }

  

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

 

发表评论
用户名: 匿名