前端算法詳解——排序

一稚伍、概述

1. 常見(jiàn)的排序算法?

1.冒泡排序
    每次比較相鄰的兩個(gè)數(shù)苗沧,如果后一個(gè)比前一個(gè)小刊棕,換位置
2.選擇排序
    每次站在自己的位置上,往下找崎页,找打最小數(shù)鞠绰,然后和當(dāng)前換位置
3.歸并排序
    采用了二分法,左邊一個(gè)排好的數(shù)組飒焦,右邊一個(gè)排好的數(shù)組蜈膨,每次比較左右第一個(gè)數(shù),小的放在一個(gè)新的數(shù)組里
4.快速排序
    采用了二分法牺荠,取出中間數(shù)翁巍,數(shù)組,每次和中間數(shù)比較休雌,小的放在左邊灶壶,大的放到右邊

2. 算法沒(méi)有完美的算法,只有合適的算法
3. 怎么去平衡一個(gè)算法好壞杈曲?

    1.時(shí)間角度(程序跑多長(zhǎng)時(shí)間)
    2.空間角度(硬盤驰凛,越小越好)
二、 冒泡排序
  var arr = [12, 233, -90, 23, -80];
    function bubbleSort(arr) {
        for (var i = 0; i < arr.length - 1; i++) {
            for (var j = 0; j < arr.length; j++) {
                if (arr[j + 1] < arr[j]) {
                    var tmp;//換位置找中間值
                    tmp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = tmp;

                }
            }
        }
        return arr;
    }
    document.write(bubbleSort(arr));
三担扑、 二分排序
  var arr = [12, 233, -90, 23, -80];
    function mySort(arr, s, e) {
        if (s > e) {
            return [];
        } else if (s == e) {
            return [arr[e]];
        }
        var c = Math.floor((s + e) / 2);
        var left = mySort(arr, s, c);
        var right = mySort(arr, c + 1, e);
        var result = [];
        while (left.length > 0 || right.length > 0) {
            if (left[0] < right[0]) {
                result.push(left.shift());
            } else {
                result.push(right.shift());
            }
            if (left.length == 0) {
                result = result.concat(right);
                break;
            } else if (right.length == 0) {
                result = result.concat(left);
                break;
            }
        }
        return result;
    };
    document.write(mySort(arr, 0, arr.length - 1));
四恰响、 快速排序
  var arr = [12, 233, -90, 23, -80];
    function quickSort(arr) {
        if (arr.length <= 0) {
            return [];
        }
        var cIndex = Math.floor(arr.length / 2);
        var c = arr.splice(cIndex, 1);
        var left = [];
        var right = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] < c[0]) {
                left.push(arr[i]);
            } else {
                right.push(arr[i]);
            }
        }
        return quickSort(left).concat(c, quickSort(right));
    };
    document.write(quickSort(arr));
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市涌献,隨后出現(xiàn)的幾起案子胚宦,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枢劝,死亡現(xiàn)場(chǎng)離奇詭異井联,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)您旁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門烙常,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人被冒,你說(shuō)我怎么就攤上這事军掂。” “怎么了昨悼?”我有些...
    開(kāi)封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵蝗锥,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我率触,道長(zhǎng)终议,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任葱蝗,我火速辦了婚禮穴张,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘两曼。我一直安慰自己皂甘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布悼凑。 她就那樣靜靜地躺著偿枕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪户辫。 梳的紋絲不亂的頭發(fā)上渐夸,一...
    開(kāi)封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音渔欢,去河邊找鬼墓塌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛奥额,可吹牛的內(nèi)容都是我干的苫幢。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼垫挨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼态坦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起棒拂,我...
    開(kāi)封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后帚屉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體谜诫,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年攻旦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了喻旷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡牢屋,死狀恐怖且预,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烙无,我是刑警寧澤锋谐,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站截酷,受9級(jí)特大地震影響涮拗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜迂苛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一三热、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧三幻,春花似錦就漾、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至锁蠕,卻和暖如春夷野,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背荣倾。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工悯搔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人舌仍。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓妒貌,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親铸豁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子灌曙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

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

  • 作者:大海里的太陽(yáng)原文地址:http://www.cnblogs.com/wxisme/ 前言 查找和排序算法是算...
    IT程序獅閱讀 2,489評(píng)論 0 63
  • 大寫的轉(zhuǎn) 目錄 [冒泡排序][雞尾酒排序] [選擇排序] [插入排序][二分插入排序][希爾排序] [歸并排序] ...
    Solang閱讀 1,790評(píng)論 0 16
  • 前言 查找和排序算法是算法的入門知識(shí),其經(jīng)典思想可以用于很多算法當(dāng)中节芥。因?yàn)槠鋵?shí)現(xiàn)代碼較短在刺,應(yīng)用較常見(jiàn)逆害。所以在面試中...
    寶塔山上的貓閱讀 1,079評(píng)論 1 21
  • 夕陽(yáng)西下,農(nóng)民工小偉和小力拖著疲憊的步伐蚣驼,渾身臟兮兮地從遠(yuǎn)處走來(lái)魄幕,邊走邊聊……隨后,坐在路邊颖杏,望著不遠(yuǎn)處運(yùn)動(dòng)健身的...
    獨(dú)秀一梔閱讀 1,228評(píng)論 27 74
  • 今日小雪纯陨,微涼 睡前聽(tīng)會(huì)歌是個(gè)還好的選擇 歌如黑胡椒予我的口味 不必須,別太多留储,不挑類 適量的時(shí)候很是歡喜 歌里帶...
    小樣面閱讀 179評(píng)論 0 0