C#List随机交换取数据(C#实现的洗牌算法)
2012-08-10 16:16
302 查看
C#实现的洗牌算法
/// <summary>
/// 洗牌算法
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="listtemp"></param>
public void Reshuffle<T>(List<T> listtemp)
{
//随机交换
Random ram = new Random();
int currentIndex;
T tempValue;
for (int i = 0; i < listtemp.Count; i++)
{
currentIndex = ram.Next(0, listtemp.Count - i);
tempValue = listtemp[currentIndex];
listtemp[currentIndex] = listtemp[listtemp.Count - 1 - i];
listtemp[listtemp.Count - 1 - i] = tempValue;
}
}
/// <summary>
/// 洗牌算法
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="listtemp"></param>
public void Reshuffle<T>(List<T> listtemp)
{
//随机交换
Random ram = new Random();
int currentIndex;
T tempValue;
for (int i = 0; i < listtemp.Count; i++)
{
currentIndex = ram.Next(0, listtemp.Count - i);
tempValue = listtemp[currentIndex];
listtemp[currentIndex] = listtemp[listtemp.Count - 1 - i];
listtemp[listtemp.Count - 1 - i] = tempValue;
}
}
相关文章推荐
- C#List随机交换取数据(C#实现的洗牌算法)
- 将一组数据中的元素打乱,可以当成洗牌的算法,也可以用去实现拼图游戏当中随机位置的产生
- 【数据结构与算法】c# Dictionary内部实现
- 【转载】白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- C#+arcengine实现输出水深图的功能(通过淹没区域和dem高程数据)(包含栅格计算器(减)、feature to line、产生随机点、获得高程、extract values to poin)
- 数据结构与算法(C#实现)系列---演示篇(一)(外摘)
- 一个洗牌程序算法,随机交换位置【经典】
- C#实现随机洗牌的方法
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 经典排序算法----选择排序算法及交换两个数据的正确实现
- 【白话经典算法系列之四】 直接选择排序及交换二个数据的正确实现
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 常用数据结构及算法C#/Java实现
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 对图像边缘进行随机均匀采样的C#算法实现
- 数据结构与算法(C#实现)系列---二叉树
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现