C#實現對數組進行隨機排序類實例
更新時間:2015年03月25日 10:51:40 作者:feige
這篇文章主要介紹了C#實現對數組進行隨機排序類,實例分析了C#數組與隨機數操作技巧,非常具有實用價值,需要的朋友可以參考下
本文實例講述了C#實現對數組進行隨機排序類。分享給大家供大家參考。具體如下:
這個一個擴充C#隨機數發(fā)生器的類,可以隨機生成指定范圍的數字,可以隨機對數組進行排序,非常好用
using System;
namespace DotNet.Utilities
{
/// <summary>
/// 使用Random類生成偽隨機數
/// </summary>
public class RandomHelper
{
//隨機數對象
private Random _random;
#region 構造函數
/// <summary>
/// 構造函數
/// </summary>
public RandomHelper()
{
//為隨機數對象賦值
this._random = new Random();
}
#endregion
#region 生成一個指定范圍的隨機整數
/// <summary>
/// 生成一個指定范圍的隨機整數,該隨機數范圍包括最小值,但不包括最大值
/// </summary>
/// <param name="minNum">最小值</param>
/// <param name="maxNum">最大值</param>
public int GetRandomInt(int minNum, int maxNum)
{
return this._random.Next(minNum, maxNum);
}
#endregion
#region 生成一個0.0到1.0的隨機小數
/// <summary>
/// 生成一個0.0到1.0的隨機小數
/// </summary>
public double GetRandomDouble()
{
return this._random.NextDouble();
}
#endregion
#region 對一個數組進行隨機排序
/// <summary>
/// 對一個數組進行隨機排序
/// </summary>
/// <typeparam name="T">數組的類型</typeparam>
/// <param name="arr">需要隨機排序的數組</param>
public void GetRandomArray<T>(T[] arr)
{
//對數組進行隨機排序的算法:隨機選擇兩個位置,將兩個位置上的值交換
//交換的次數,這里使用數組的長度作為交換次數
int count = arr.Length;
//開始交換
for (int i = 0; i < count; i++)
{
//生成兩個隨機數位置
int randomNum1 = GetRandomInt(0, arr.Length);
int randomNum2 = GetRandomInt(0, arr.Length);
//定義臨時變量
T temp;
//交換兩個隨機數位置的值
temp = arr[randomNum1];
arr[randomNum1] = arr[randomNum2];
arr[randomNum2] = temp;
}
}
#endregion
}
}
希望本文所述對大家的C#程序設計有所幫助。

