技术成就梦想

知道用户需求,做到专注!c#,donet,Frameworks,UML,面向对象,设计模式!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一个洗牌程序算法,随机交换位置【经典】

Posted on 2011-06-18 01:17  我不是高手  阅读(1526)  评论(1编辑  收藏  举报
            int[] numbers=new int [20];     //建立一个数组
            Random rand=new Random (); //生成随机数
            string result="";                    //保存结果
            for (int i = 0; i < 20; i++)       //初始化数组
                numbers[i] = i+1;
            for (int i = 0; i < 20; i++)          //洗牌
              {
                int temp = rand.Next(20);
                int tempNumber = numbers[i ];
                numbers[i] = numbers[temp ];
                numbers[temp] =tempNumber ;
              }
            for (int i = 0; i < 4; i++)          //这个用来排列你想要的那4个数
                for (int j = 0; j < 4; j++)         
                {                                           //你不需要就去掉它
                    int temp;
                    if (numbers[i] < numbers[j])
                    {
                        temp = numbers[j];
                        numbers[j] = numbers[i];
                        numbers[i] = temp;
                    }
                    else
                        continue;
                }                                         //生成结果项
                    for (int i = 0; i < 4; i++)
                        result += "result" + i.ToString() + "==>" + numbers[i].ToString() + Environment.NewLine;
                      MessageBox.Show(result );     //输出结果


这个思路挺好的,洗牌程序都应该是这样的 我感觉。