C#實(shí)現(xiàn)對(duì)數(shù)組進(jìn)行隨機(jī)排序類實(shí)例
更新時(shí)間:2015年03月25日 10:51:40 作者:feige
這篇文章主要介紹了C#實(shí)現(xiàn)對(duì)數(shù)組進(jìn)行隨機(jī)排序類,實(shí)例分析了C#數(shù)組與隨機(jī)數(shù)操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了C#實(shí)現(xiàn)對(duì)數(shù)組進(jìn)行隨機(jī)排序類。分享給大家供大家參考。具體如下:
這個(gè)一個(gè)擴(kuò)充C#隨機(jī)數(shù)發(fā)生器的類,可以隨機(jī)生成指定范圍的數(shù)字,可以隨機(jī)對(duì)數(shù)組進(jìn)行排序,非常好用
using System;
namespace DotNet.Utilities
{
/// <summary>
/// 使用Random類生成偽隨機(jī)數(shù)
/// </summary>
public class RandomHelper
{
//隨機(jī)數(shù)對(duì)象
private Random _random;
#region 構(gòu)造函數(shù)
/// <summary>
/// 構(gòu)造函數(shù)
/// </summary>
public RandomHelper()
{
//為隨機(jī)數(shù)對(duì)象賦值
this._random = new Random();
}
#endregion
#region 生成一個(gè)指定范圍的隨機(jī)整數(shù)
/// <summary>
/// 生成一個(gè)指定范圍的隨機(jī)整數(shù),該隨機(jī)數(shù)范圍包括最小值,但不包括最大值
/// </summary>
/// <param name="minNum">最小值</param>
/// <param name="maxNum">最大值</param>
public int GetRandomInt(int minNum, int maxNum)
{
return this._random.Next(minNum, maxNum);
}
#endregion
#region 生成一個(gè)0.0到1.0的隨機(jī)小數(shù)
/// <summary>
/// 生成一個(gè)0.0到1.0的隨機(jī)小數(shù)
/// </summary>
public double GetRandomDouble()
{
return this._random.NextDouble();
}
#endregion
#region 對(duì)一個(gè)數(shù)組進(jìn)行隨機(jī)排序
/// <summary>
/// 對(duì)一個(gè)數(shù)組進(jìn)行隨機(jī)排序
/// </summary>
/// <typeparam name="T">數(shù)組的類型</typeparam>
/// <param name="arr">需要隨機(jī)排序的數(shù)組</param>
public void GetRandomArray<T>(T[] arr)
{
//對(duì)數(shù)組進(jìn)行隨機(jī)排序的算法:隨機(jī)選擇兩個(gè)位置,將兩個(gè)位置上的值交換
//交換的次數(shù),這里使用數(shù)組的長(zhǎng)度作為交換次數(shù)
int count = arr.Length;
//開(kāi)始交換
for (int i = 0; i < count; i++)
{
//生成兩個(gè)隨機(jī)數(shù)位置
int randomNum1 = GetRandomInt(0, arr.Length);
int randomNum2 = GetRandomInt(0, arr.Length);
//定義臨時(shí)變量
T temp;
//交換兩個(gè)隨機(jī)數(shù)位置的值
temp = arr[randomNum1];
arr[randomNum1] = arr[randomNum2];
arr[randomNum2] = temp;
}
}
#endregion
}
}
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- C#二維數(shù)組基本用法實(shí)例
- C#使用foreach語(yǔ)句遍歷二維數(shù)組的方法
- C#實(shí)現(xiàn)對(duì)二維數(shù)組排序的方法
- c#基礎(chǔ)之?dāng)?shù)組與接口使用示例(遍歷數(shù)組 二維數(shù)組)
- C#數(shù)組排序的兩種常用方法
- C# 數(shù)組查找與排序?qū)崿F(xiàn)代碼
- C#基礎(chǔ)之?dāng)?shù)組排序、對(duì)象大小比較實(shí)現(xiàn)代碼
- C#使用linq對(duì)數(shù)組進(jìn)行篩選排序的方法
- C#數(shù)組反轉(zhuǎn)與排序?qū)嵗治?/a>
- C#實(shí)現(xiàn)的二維數(shù)組排序算法示例
相關(guān)文章
C#實(shí)現(xiàn)數(shù)據(jù)去重的方式總結(jié)
這篇文章主要來(lái)和大家一起來(lái)討論一下關(guān)于C#數(shù)據(jù)去重的常見(jiàn)的幾種方式,每種方法都有其特點(diǎn)和適用場(chǎng)景,感興趣的小伙伴可以了解一下2023-07-07
C#使用AutoMapper實(shí)現(xiàn)類映射詳解
AutoMapper是一個(gè)用于.NET中簡(jiǎn)化類之間的映射的擴(kuò)展庫(kù),這篇文章主要介紹了C#如何使用AutoMapper實(shí)現(xiàn)類映射,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01

