面试的时候碰到上面的题目,实际上我没把它做好,而且我对算法不怎么学习.
        晚上洗菜的时候突然一想, "最快的算法......", 觉得当时没把题目把握好,并且一下子来了灵感, 于是把它coding下来:
using System;
using System.Collections.Generic;

namespace SortDemo
{
    
class Program
    
{
        
static void Main(string[] args)
        
{
            List
<int> list = new List<int>();
            
while(list.Count < 100)
            
{
                
int num = new Random().Next(-100200);
                
if(num >=1 && num <=100 && !list.Contains(num))
                    list.Add(num);
            }


            
int[] array = new int[100];
            
for(int i = 0; i < array.Length; i++)
            
{
                array[i] 
= list[i];
            }


            
int[] sortArray = new int[100];
            
for(int j= 0; j < array.Length; j++)
            
{
                sortArray[array[j]
-1= array[j];
            }


            
for(int k=0; k < sortArray.Length; k++)
            
{
                Console.WriteLine(
string.Format("{0}    {1}",k,sortArray[k]));
            }


            Console.Read();
        }

    }

}

         选择-100,200这个区间并判断生成的数字是不是落在1,100之后是想加快生成速度. 按正态分布的随机数来说,应该有比-100,200的区间更快生成100个不重复的随机数.
posted on 2007-06-29 23:28  分享 共赢  阅读(1279)  评论(2编辑  收藏  举报