C# 数组 随机 排序
答案:3 悬赏:10 手机版
解决时间 2021-03-17 07:01
- 提问者网友:沉默的哀伤
- 2021-03-16 15:09
C# 数组 随机 排序
最佳答案
- 五星知识达人网友:長槍戰八方
- 2021-03-16 15:39
int[] a = { 1, 2, 4, 5, 3, 6, 7, 8 };
int[] b = a.OrderBy(x => Guid.NewGuid()).ToArray();
foreach (int v in b)
Console.WriteLine(v);
Console.ReadKey();上例用C#3.0新增的Linq技术中的OrderBy方法排序,排序的依据是与原序列元素对应生成的一个“键”——Grid.NewGuid()方法返回的一个随机32位不重复Guid字符串。因为每次生成的Guid字符串大小都不同,且大小与生成先后无关,所以按这个“键”排序后的整数序列的顺序是随机的。
int[] b = a.OrderBy(x => Guid.NewGuid()).ToArray();
foreach (int v in b)
Console.WriteLine(v);
Console.ReadKey();上例用C#3.0新增的Linq技术中的OrderBy方法排序,排序的依据是与原序列元素对应生成的一个“键”——Grid.NewGuid()方法返回的一个随机32位不重复Guid字符串。因为每次生成的Guid字符串大小都不同,且大小与生成先后无关,所以按这个“键”排序后的整数序列的顺序是随机的。
全部回答
- 1楼网友:忘川信使
- 2021-03-16 17:17
新建两个新数组,a[nums.lengths],b[nums.lengths]
for(int i=0;i {
for(int j=0;j{
if(a[j]==nums[i])
{
b[j]++;//用b数组来表示每个数出现的个数
}
else
{
a[j]=num[i];//如果这个数没出现过就记在a数组里
}
}
}
然后再找到b数组里前三位大小的位置,比如i,j,k
那么
a[i],a[j],a[k]就是你要的数字
不知道你能不能看得懂哈~很快的想了一下 估计也是没什么效率的代码了
for(int i=0;i
for(int j=0;j{
if(a[j]==nums[i])
{
b[j]++;//用b数组来表示每个数出现的个数
}
else
{
a[j]=num[i];//如果这个数没出现过就记在a数组里
}
}
}
然后再找到b数组里前三位大小的位置,比如i,j,k
那么
a[i],a[j],a[k]就是你要的数字
不知道你能不能看得懂哈~很快的想了一下 估计也是没什么效率的代码了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯