隨機排序四種方法

2022-06-23 16:45:18 字數 1142 閱讀 5592

var arr=[1,3,4,6,8,9,7];

function foo(arr))

return clonearr; //返回排序後的值

}for(var i=0;i<10;i++)

原理:因為sort排序方法是通過**函式的返回值來進行排序的,1是公升序,-1是降序,而隨機數的取值範圍是0-1,所以我們將隨機數-0.5,就可以得到隨機的正負數。但是由於此方法是兩個相鄰的數進行比較,所以到後面比較的數越小,出現到概率就越大,所以概率不相同。

var arr=[1,3,5,6,7,9,8];

function foo(arr)

var index=math.floor(math.random()*clonearr.length) //得到從0到clonearr.length的隨機數

result.push(...clonearr.splice(index,1));

arguments.callee();

})()

return result;

}for(var i=0;i<10;i++)

原理:通過隨機數隨機產生陣列的下標,然後通過splice擷取當前隨機的數放入新陣列中,只要轉殖的陣列沒有被擷取完,使用arguments.callee()進行自調。

var arr=[1,3,5,6,7,9,8];

function foo(arr){

var clonearr=arr.concat();//拷貝陣列

var result=;

var len=clonearr.length;

for(var i=0;i原理:迴圈生成隨機數,每生成一次隨機數就作為下標,將原數拼接到新陣列中去。直到原陣列為空。

var arr=[1,3,5,6,7,9,8];

function foo(arr){

var clonearr=arr.concat();//拷貝陣列

var result=;

var len=clonearr.length;

for(var i=0;i原理:洗牌演算法就是將迴圈的數儲存下來,儲存下來後就隨機產生乙個數,將隨機產生的數賦值給前面儲存的數,然後再講前面儲存的數給當前隨機產生的數,最後直到將陣列的長度迴圈完。

PHP遞迴四種方法

data json data str replace data arr json decode data true print r arr dir foreach arr as k v header content type text html charset utf 8 print r arr p...

執行緒同步四種方法

執行緒同步的方法 1 wait 使乙個執行緒處於等待狀態,並且釋放所持有的物件的lock。2 sleep 使乙個正在執行的執行緒處於睡眠狀態,是乙個靜態方法,呼叫此方法要捕捉 interruptedexception異常。3 notify 喚醒乙個處於等待狀態的執行緒,注意的是在呼叫此方法的時候,並...

PHP四種排序方法

前提 分別用氣泡排序法,快速排序法,選擇排序法,插入排序法將下面陣列中的值按照從小到大的順序進行排序。arr 1,43,54,62,21,66,32,78,36,76,39 1.氣泡排序 思路分析 在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,...