C#实现对数组进行随机排序类实例
本文实例讲述了C#实现对数组进行随机排序类。分享给大家供大家参考。具体如下:
这个一个扩充C#随机数发生器的类,可以随机生成指定范围的数字,可以随机对数组进行排序,非常好用
usingSystem;
namespaceDotNet.Utilities
{
///<summary>
///使用Random类生成伪随机数
///</summary>
publicclassRandomHelper
{
//随机数对象
privateRandom_random;
#region构造函数
///<summary>
///构造函数
///</summary>
publicRandomHelper()
{
//为随机数对象赋值
this._random=newRandom();
}
#endregion
#region生成一个指定范围的随机整数
///<summary>
///生成一个指定范围的随机整数,该随机数范围包括最小值,但不包括最大值
///</summary>
///<paramname="minNum">最小值</param>
///<paramname="maxNum">最大值</param>
publicintGetRandomInt(intminNum,intmaxNum)
{
returnthis._random.Next(minNum,maxNum);
}
#endregion
#region生成一个0.0到1.0的随机小数
///<summary>
///生成一个0.0到1.0的随机小数
///</summary>
publicdoubleGetRandomDouble()
{
returnthis._random.NextDouble();
}
#endregion
#region对一个数组进行随机排序
///<summary>
///对一个数组进行随机排序
///</summary>
///<typeparamname="T">数组的类型</typeparam>
///<paramname="arr">需要随机排序的数组</param>
publicvoidGetRandomArray<T>(T[]arr)
{
//对数组进行随机排序的算法:随机选择两个位置,将两个位置上的值交换
//交换的次数,这里使用数组的长度作为交换次数
intcount=arr.Length;
//开始交换
for(inti=0;i<count;i++)
{
//生成两个随机数位置
intrandomNum1=GetRandomInt(0,arr.Length);
intrandomNum2=GetRandomInt(0,arr.Length);
//定义临时变量
Ttemp;
//交换两个随机数位置的值
temp=arr[randomNum1];
arr[randomNum1]=arr[randomNum2];
arr[randomNum2]=temp;
}
}
#endregion
}
}
希望本文所述对大家的C#程序设计有所帮助。