摘要:不斷從原數(shù)組中隨機(jī)取一個元素放進(jìn)新數(shù)組,同時刪除原數(shù)組中該值,遞歸重復(fù)至全部取出。相當(dāng)于遞歸退出
//不斷從原數(shù)組中隨機(jī)取一個元素放進(jìn)新數(shù)組,同時刪除原數(shù)組中該值,遞歸重復(fù)至全部取出。 function randomSort(arr, newArr) { var newArr = newArr || [] if (arr.length == 1) { newArr.push(arr[0]) return newArr; // 相當(dāng)于遞歸退出 } var random = Math.ceil(Math.random() * arr.length) - 1 newArr.push(arr[random]) arr.splice(random, 1) return randomSort(arr, newArr) } randomSort([1, 2, 3, 4, 5, 6, 7]); //[2, 3, 1, 5, 6, 7, 4] randomSort([1, 2, 3, 4, 5, 6, 7]); //[3, 4, 2, 5, 1, 6, 7]
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84594.html
摘要:源碼地址為了簡化篇幅,我們對這個數(shù)組進(jìn)行分析,數(shù)組長度為,此時采用的是插入排序。插入排序的源碼是其原理在于將第一個元素視為有序序列,遍歷數(shù)組,將之后的元素依次插入這個構(gòu)建的有序序列中。 JavaScript 專題系列第十九篇,講解數(shù)組亂序,重點(diǎn)探究 Math.random() 為什么不能真正的亂序? 亂序 亂序的意思就是將數(shù)組打亂。 嗯,沒有了,直接看代碼吧。 Math.random ...
摘要:準(zhǔn)備面試,多看點(diǎn)題。來自雨夜帶刀需求描述從一組有序的數(shù)據(jù)中生成一組隨機(jī)并且不重復(fù)的數(shù),類似于簡單的抽獎程序的實(shí)現(xiàn)。 (準(zhǔn)備面試,多看點(diǎn)題。來自雨夜帶刀s Blog) 需求描述:從一組有序的數(shù)據(jù)中生成一組隨機(jī)并且不重復(fù)的數(shù),類似于簡單的抽獎程序的實(shí)現(xiàn)。 先來生成一個有序的數(shù)組: var arr = [], length = 100, i = 0; for( ; i < length;...
摘要:代碼實(shí)現(xiàn)代碼一測試用例輸出其中,代碼二測試用例輸出其中,參考資料洗牌算法學(xué)習(xí)筆記數(shù)組隨機(jī)排序洗牌算法給數(shù)組隨機(jī)排序洗牌算法原理 原理及步驟 1.定義一個數(shù)組(shuffled),長度(length)是原數(shù)組(arr)長度2.取 0 到 index (初始0) 隨機(jī)值 rand, shuffled[index] = shuffled[rand], shuffled[rand] = arr...
摘要:數(shù)組元素甚至可以是對象或其它數(shù)組。它執(zhí)行的是淺拷貝,這意味著如果數(shù)組元素是對象,兩個數(shù)組都指向相同的對象,對新數(shù)組中的對象修改,會在舊的數(shù)組的相同對象中反應(yīng)出來。 JS中的數(shù)組是弱類型的,數(shù)組中可以含有不同類型的元素。數(shù)組元素甚至可以是對象或其它數(shù)組。JS引擎一般會優(yōu)化數(shù)組,按索引訪問數(shù)組常常比訪問一般對象屬性明顯迅速。數(shù)組長度范圍 from 0 to 4,294,967,295(2^...
摘要:今天我們來討論的問題有兩個如何用實(shí)現(xiàn)選擇排序冒泡排序插入排序快速排序歸并排序堆排序?qū)ι傻娜f個隨機(jī)數(shù)進(jìn)行排序,各個排序算法的性能分析??焖倥判蚩焖倥判蛩惴ɑ旧鲜敲嬖嚤乜寂判蛩惴?,也是傳聞最好用的算法。 今天我們來討論的問題有兩個: 如何用JavaScript實(shí)現(xiàn)選擇排序、冒泡排序、插入排序、快速排序、歸并排序、堆排序; 對生成的10萬個隨機(jī)數(shù)進(jìn)行排序,各個排序算法的性能分析。 創(chuàng)...
閱讀 1460·2021-09-02 19:23
閱讀 1608·2021-08-11 11:19
閱讀 653·2019-08-30 15:55
閱讀 1664·2019-08-30 12:50
閱讀 2253·2019-08-30 11:23
閱讀 2191·2019-08-29 13:13
閱讀 1511·2019-08-28 18:13
閱讀 3350·2019-08-26 11:53