1. 程式人生 > >數組的三種隨機排序方法

數組的三種隨機排序方法

可能 循環 長度 定義 利用 效率 圖片 取整 技術分享

第一種、利用數組自帶的sort方法(下面是完整代碼)

技術分享圖片

  這種方法是利用隨機出一個正數或者負數來讓數組裏面的內容兩兩對比,是正數就是順序,是負數則是倒序,這種方法的缺點就是隨機性不高,不能完全隨機,因為是兩兩對比,所以最後一個數在最後的可能性較大。

第二種、利用遞歸函數對比(下面是完整代碼)

技術分享圖片

  遞歸的方法是利用遞歸函數的自調,定義一個隨機數index(因為定了向下取整,所以範圍為0~8)作為隨機下標,然後將它對應的數從數組中取下壓入到result數組中,從而實現隨機排序,定義if判斷,如果cloneArr的長度為空的話,則退出循環,這種隨機的隨機性很好,但是代碼性能不太友好。

第三種、洗牌算法(推薦)

下面是完整代碼:

技術分享圖片

  洗牌算法呢是利用隨機出的index下標對應的數,與數組從前到後相互切換,所以稱為洗牌,代碼運行效率相比前面幾種高,隨機性也很大。在這強烈推薦。

數組的三種隨機排序方法