JavaScript十大排序算法

排序算法說明:

(1)對于評述算法優(yōu)劣術(shù)語的說明

穩(wěn)定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面幽勒;
不穩(wěn)定:如果a原本在b的前面,而a=b港令,排序之后a可能會出現(xiàn)在b的后面啥容;

內(nèi)排序:所有排序操作都在內(nèi)存中完成;
外排序:由于數(shù)據(jù)太大顷霹,因此把數(shù)據(jù)放在磁盤中咪惠,而排序通過磁盤和內(nèi)存的數(shù)據(jù)傳輸才能進(jìn)行;

時間復(fù)雜度: 一個算法執(zhí)行所耗費(fèi)的時間淋淀。
空間復(fù)雜度: 運(yùn)行完一個程序所需內(nèi)存的大小遥昧。

(2)排序算法圖片總結(jié):


n: 數(shù)據(jù)規(guī)模
k:“桶”的個數(shù)
In-place: 占用常數(shù)內(nèi)存,不占用額外內(nèi)存
Out-place: 占用額外內(nèi)存
穩(wěn)定性:排序后2個相等鍵值的順序和排序之前它們的順序相同

1.冒泡排序:

解析:1.比較相鄰的兩個元素朵纷,如果前一個比后一個大炭臭,則交換位置。
   2.第一輪的時候最后一個元素應(yīng)該是最大的一個袍辞。
   3.按照步驟一的方法進(jìn)行相鄰兩個元素的比較鞋仍,這個時候由于最后一個元素已經(jīng)是最大的了,所以最后一個元素不用比較搅吁。

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

        function bubbleSort(arr) {
            var len = arr.length;
            for (var i = 0; i < len - 1; i++) {
                for (var j = 0; j < arr.length - i - 1; j++) {
                    if (arr[j] > arr[j + 1]) {
                        var swap = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = swap;
                    }
                }
            }
            return arr;
        }
     console.log(bubbleSort(arr));

2.快速排序:

解析:快速排序是對冒泡排序的一種改進(jìn)威创,第一趟排序時將數(shù)據(jù)分成兩部分,一部分比另一部分的所有數(shù)據(jù)都要小谎懦。然后遞歸調(diào)用肚豺,在兩邊都實(shí)行快速排序。

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

        function quickSort(arr) {
            if (arr.length <= 1) {
                return arr;
            }
            var pivotIndex = Math.floor(arr.length / 2);
            var pivot = arr.splice(pivotIndex, 1)[0];
            var left = [],
                right = [],
                len = arr.length;
            for (var i = 0; i < len; i++) {
                if (arr[i] < pivot) {
                    left.push(arr[i]);
                } else {
                    right.push(arr[i]);
                }
            }
            return quickSort(left).concat([pivot], quickSort(right));
        }
        console.log(quickSort(arr));

歸來仍是少年

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末界拦,一起剝皮案震驚了整個濱河市详炬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖呛谜,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異枪萄,居然都是意外死亡隐岛,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門瓷翻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來聚凹,“玉大人,你說我怎么就攤上這事齐帚《恃溃” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵对妄,是天一觀的道長湘今。 經(jīng)常有香客問我,道長剪菱,這世上最難降的妖魔是什么摩瞎? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮孝常,結(jié)果婚禮上旗们,老公的妹妹穿的比我還像新娘。我一直安慰自己构灸,他們只是感情好上渴,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喜颁,像睡著了一般稠氮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上洛巢,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天括袒,我揣著相機(jī)與錄音,去河邊找鬼稿茉。 笑死锹锰,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的漓库。 我是一名探鬼主播恃慧,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼渺蒿!你這毒婦竟也來了痢士?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤茂装,失蹤者是張志新(化名)和其女友劉穎怠蹂,沒想到半個月后善延,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡城侧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年易遣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嫌佑。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡豆茫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屋摇,到底是詐尸還是另有隱情揩魂,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布炮温,位于F島的核電站火脉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏茅特。R本人自食惡果不足惜忘分,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望白修。 院中可真熱鬧妒峦,春花似錦、人聲如沸兵睛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祖很。三九已至笛丙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間假颇,已是汗流浹背胚鸯。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留笨鸡,地道東北人姜钳。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像形耗,于是被迫代替她去往敵國和親哥桥。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 本文轉(zhuǎn)自公眾號 「程序員私房菜 」 一直有寫一篇關(guān)于排序算法文章的打算激涤,直到我看到了這一篇拟糕,我放棄了自己寫的打算,...
    KEEPINUP閱讀 2,439評論 4 15
  • 排序算法說明 (1)排序的定義:對一序列對象根據(jù)某個關(guān)鍵字進(jìn)行排序; 輸入:n個數(shù):a1,a2,a3,…,an輸出...
    BULL_DEBUG閱讀 769評論 0 3
  • 偶得 瀟瀟夜雨初寒秋, 脈脈江火相映愁. 去年峨眉登高地, 皎皎河漢卿未留. 遙知舊城公孫落, 一葉西風(fēng)出蓉州. ...
    良人兒2閱讀 202評論 1 1
  • 第一小節(jié)1.指法1). _ 意味著前一個指法的延續(xù)送滞,2). 連托時最后一個是提彈侠草,即離開琴弦。 2.節(jié)拍1). 第...
    木子雨閱讀 163評論 0 0
  • 姓名:母光艷 公司:寧波貞觀電器 第235期犁嗅,利他二組 【日精進(jìn)打卡第169天】 【知-學(xué)習(xí)】 誦讀《六項(xiàng)精進(jìn)》大...
    母光焱閱讀 104評論 0 0