夜的第七章

WEB开发个人博客。

« 患难见实情,看中国赴墨包机执行前后struts2出错&eclipse中JSP默认编码 »

面试题:C#声明一个100大小的数组 随机生成1-100之间不重复的数

面试题:C#声明一个100大小的数组 随机生成1-100之间不重复的数

我的实现:

  1. static Random random = new Random();   
  2.         static void Main(string[] args)   
  3.         {   
  4.             Console.WriteLine(DateTime.Now.Millisecond);   
  5.             int[] data = new int[100];   
  6.             System.Collections.Hashtable ht = new System.Collections.Hashtable();   
  7.             for (int i = 0; i < 100; i++)   
  8.             {   
  9.                 ht.Add(i, 0);   
  10.             }   
  11.   
  12.             for(int i = 0; i < 100;i++)   
  13.             {   
  14.   
  15.                 data[i] = GetRandom( ref ht);   
  16.             }   
  17.   
  18.             Console.WriteLine(DateTime.Now.Millisecond);   
  19.   
  20.             Console.Read();   
  21.   
  22.         }   
  23.   
  24.         private static int GetRandom(ref System.Collections.Hashtable ht)   
  25.         {   
  26.   
  27.             int tem = random.Next(0, 100);   
  28.             if ((int)ht[tem] == 0)   
  29.             {   
  30.                 ht[tem] = 1;   
  31.                 return tem;   
  32.             }   
  33.             else  
  34.             {   
  35.                 return GetRandom(ref ht);   
  36.             }   
  37.         }  
貌似比网上的朋友写的代码多……不过即兴发挥,这样也可以了……效率貌似还可以……就是代码多了几行……
blog园的朋友的实现:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。



[2007 - 2011] © Leadnt.com