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 洗牌算法,打乱数组,随机获取元素