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]中,这样排序也省略了。

    ///排序待续

  • 相关阅读:
    刷新界面
    分页加载数据(每次10条内容)的简单计算
    Intent传输包含对象的List集合
    android定时更新文件
    java中byte数据转换为c#的byte数据
    java zip文件的解压缩(支持中文文件名)
    Redis PHP扩展安装步骤
    CentOS6.5 开机启动自动运行redis服务
    centos7.2挂载硬盘攻略
    探究:Adobe Premiere Pro CC 2018 导入SRT字幕显示不全问题
  • 原文地址:https://www.cnblogs.com/songshuqun/p/763505.html
Copyright © 2011-2022 走看看