3L程序可以,但是效率太低【复杂度o(n2)】,更好的做法是,先把1-100放入一个列表,然后用Random从0-99来获取位置,每得到一个值就从列表pop出来,放入数组;因为位置始终不变,而列表在缩小,所以每次都要这么变动:index=index%列表长度;直到列表里面只有1个元素的时候,直接把最后一个数字放入数组最后一个空位,返回数组即可。 程序就不写了,算法给你了 。算法复杂度o(n)
int len=100;
int[] array=new int[len];
for(int i=0;i
array[i]=i+1;
}
楼主可以跑下这段代码,我写个C#点的:
int len=100;
List
for(int i=0;i
array.Add(i+1);
}
//如果希望打乱顺序加上下面这段(Shuffle,洗牌算法)
Random r=new Random();
for (int i = 0; i < len-1; i++)
{
int tmp = array[i];
int pos =i+ r.Next(0, len-i);
array[i]=array[pos];
array[pos] = tmp;
}
//顺序排序
array.Sort();
//希望控制台输出:
foreach(int a in array)
{
Console.WriteLine(a);
}
是插入1-100的随机值么?
List
Random ran = new Random();
int tempInt=1;
while(1==1) {
tempInt=ran.Next(1,101);
if (!list.Contains(tempInt)) {
list.Add(tempInt);
}
if (list.Count == 100) {
break;
}
};
Console.WriteLine(list.Count);
foreach (int i in list) {
Console.WriteLine(i.ToString());
}
Console.WriteLine("排序后");
list.Sort();
foreach (int i in list) {
Console.WriteLine(i.ToString());
}
这跟C不是一样一样的么。。。。楼上正解。。。