数组的三种随机排序方法

Posted xwkj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组的三种随机排序方法相关的知识,希望对你有一定的参考价值。

 第一种、利用数组自带的sort方法(下面是完整代码)

技术分享图片

  这种方法是利用随机出一个正数或者负数来让数组里面的内容两两对比,是正数就是顺序,是负数则是倒序,这种方法的缺点就是随机性不高,不能完全随机,因为是两两对比,所以最后一个数在最后的可能性较大。

第二种、利用递归函数对比(下面是完整代码)

技术分享图片

  递归的方法是利用递归函数的自调,定义一个随机数index(因为定了向下取整,所以范围为0~8)作为随机下标,然后将它对应的数从数组中取下压入到result数组中,从而实现随机排序,定义if判断,如果cloneArr的长度为空的话,则退出循环,这种随机的随机性很好,但是代码性能不太友好。

第三种、洗牌算法(推荐)

下面是完整代码:

技术分享图片

  洗牌算法呢是利用随机出的index下标对应的数,与数组从前到后相互切换,所以称为洗牌,代码运行效率相比前面几种高,随机性也很大。在这强烈推荐。

 

以上是关于数组的三种随机排序方法的主要内容,如果未能解决你的问题,请参考以下文章

ava对数组元素排序的三种方式

逆序对的三种求法(归并排序,树状数组,线段树)

[Excel VBA]自定义排序的三种方法

java中数组的三种排序算法

数组去重的三种方法

java中数组的定义