zoukankan      html  css  js  c++  java
  • 一道关于随机数问题的程序解

    问题:产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。对上面生成的数组排序,需要支持升序、降序两种顺序


        public class RndNumber
        {
            int[] aRnd = null;
            int iMax;
            int iMin;
            /// <summary>
            /// Creates a new instance of RndNumber
            /// </summary>
            public RndNumber()
            {
                iMax = 100;
                iMin = 0;
                aRnd = new int[100];
                for (int i = 0; i < 100; i++)
                    aRnd[i] = -1;
            }

            public void CreateRndNumber()
            {
                for (int i = 0; i < 100; i++)
                {
                    int number = getRndNumber();
                    if (isExist(number))
                        i--;
                    else
                        aRnd[i] = number;
                }
            }

            public bool isExist(int number)
            {
                for (int i = 0; i < 100; i++)
                    if (number == aRnd[i]) return true;
                return false;
            }

            public int getRndNumber()
            {
                Random rnd = new Random();
                return rnd.Next(iMin, iMax);
            }

        }

    感觉效率极低,可以改进的地方,思路如下:找到一个随机数,直接放到指定下标中,如,0放入aRnd[0]中,这样排序也省略了。

    ///排序待续

  • 相关阅读:
    == Equals ReferenceEquals 比较
    数据库 数据类型
    C# 判断路径和文件存在
    OpenXml 2.0 读取Excel
    excel2003, 2007最大行列、sheet数
    将List中部分字段转换为DataTable中
    X64位PC上dsoframer兼容性问题
    winform 客户端 HTTP协议与服务端通信以及解决中文乱码
    VIsual Studio 2010 常用快捷键
    Web Pages(单页面模型)
  • 原文地址:https://www.cnblogs.com/songshuqun/p/763505.html
Copyright © 2011-2022 走看看