前往IT大V的晋级之道

YY而已,不必当真

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

问题:产生一个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]中,这样排序也省略了。

///排序待续

posted on 2007-05-29 09:54  岩山藤  阅读(202)  评论(0编辑  收藏  举报