C#List随机交换取数据(C#实现的洗牌算法)
2013-04-03 13:26
337 查看
/// <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>
/// <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#实现LinkedList实例
- 【数据结构与算法】c# Dictionary内部实现
- 经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 数据结构与算法(C#实现)系列---AVLTree(二)(外摘)
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- C#中应用DDE技术实现动态数据交换
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 数据结构与算法(C#实现)系列---演示篇(一)(外摘)
- 【LeetCode-面试算法经典-Java实现】【138-Copy List with Random Pointer(拷贝有随机指针的单链表)】
- 【LeetCode-面试算法经典-Java实现】【143-Copy List with Random Pointer(有随机指针的链表复制)】
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 经典排序算法----选择排序算法及交换两个数据的正确实现
- 【转载】白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- C#实现导出List数据到xml文件的方法【附demo源码下载】
- 一个洗牌程序算法,随机交换位置【经典】
- C#中实现任意List的全组合算法代码
- 实现PHP服务端和c#客户端数据交换
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现