markdown 洗牌算法:数组随机排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown 洗牌算法:数组随机排序相关的知识,希望对你有一定的参考价值。
```
Array.prototype.shuffle = function () {
var arr = this
for (var i = arr.length - 1; i >= 0; i--) {
var randomIdx = Math.floor(Math.random() * (i + 1))
var itemAtIdx = arr[randomIdx]
arr[randomIdx] = arr[i]
arr[i] = itemAtIdx
}
return arr
}
var tempArr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(tempArr.shuffle())//[ 5, 9, 6, 8, 4, 7, 3, 1, 2 ]
```
---
```
import java.util.*;
/**
* 生成不重复随机数的一种算法。
*
* @author 赵学庆,Java世纪网(java2000.net)
*
*/
public class T {
public static void main(String[] args) {
// 要排序的一组数字
int[] seed = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int len=seed.length;
int[] result= new int[len];
Random random = new Random();
for (int i = 0; i < len; i++) {
// 得到一个位置
int r = ran.nextInt(len - i);
// 得到那个位置的数值
result[i] = seed[r];
// 将最后一个未用的数字放到这里
seed[r] = seed[len - 1 - i];
}
System.out.println("result:" + Arrays.toString(result));
}
}
```
以上是关于markdown 洗牌算法:数组随机排序的主要内容,如果未能解决你的问题,请参考以下文章
洗牌算法分析
VB洗牌算法产生随机数组
随机打乱数组顺序之随机洗牌算法
洗牌算法C++将数组的元素顺序随机打乱(条件概率证明算法充分随机)
如何随机洗牌一个数组
Javascript 洗牌算法,打乱数组,随机获取元素