排序算法

字典排序

let dict = {f: 3, b:1, c:2,a:{c:1,b:3,a:6}};
for (let key of Object.keys(dict).sort()) {
  console.log(key, dict[key]);
}

冒泡排序

     var bubbleSort = function (arr) {
        var length = arr.length;
        for(var i=0;i<length-1;i++){
            for (var j= 0;j<length-1-i;j++){
                if(arr[j] >arr[j+1]){
                    var aux =arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1]= aux;
                }
            }
        }
         return arr;
    };
    var arr1=[3,1,2,6,8,9,3,4,14,11,"a","h","c","b"];
    console.log(arr1);
    console.log(bubbleSort(arr1));

選擇排序

    var selectionSort = function (arr) {
        var length = arr.length,indexMin;
        for (var i=0;i<length-1;i++){
            indexMin =i;
            for (var j=i;j<length;j++){
                if(arr[indexMin]>arr[j]){
                    indexMin = j;
                }
            }
            if(i !==indexMin){
                var aux =arr[i];
                arr[i] = arr[indexMin];
                arr[indexMin]= aux;
            }
        }
        return arr;
    }
var arr2=[3,1,2,6,8,9,3,4,14,11,"a","h","c","b"];
  console.log(selectionSort(arr2));

插入排序

    var insertionSort = function(arr){
        var len = arr.length;
        var j,temp;
        for( var i=1;i<len;i++){
            j=i;
            temp =arr[i];
            while(j> 0 && arr[j-1]>temp){
                arr[j]=arr[j-1];
                j--;
            }
            arr[j]=temp;
        }
        return arr;
    }
var arr3=[3,1,2,6,8,9,3,4,14,11,"a","h","c","b"];
console.log(insertionSort(arr3));

歸并排序

function merge(left, right) {
    var tmp = [];
    while (left.length && right.length) {
        if (left[0] < right[0])
            tmp.push(left.shift());
        else
            tmp.push(right.shift());
    }
    return tmp.concat(left, right);
}
function mergeSort(a) {
    if (a.length === 1)
        return a;
    var mid = Math.floor(a.length / 2)
            , left = a.slice(0, mid)
            , right = a.slice(mid);
    console.log(left);
    console.log(right);
    return merge(mergeSort(left), mergeSort(right));
}
var arr4=[3,1,2,6,8,9,3,4,14,11,"a","h","c","b"];
console.log(mergeSort(arr4));

快速排序

    function quickSort(a) {
        if (a.length <= 1) return a;
        var mid = Math.floor(a.length / 2)
                , midItem = a.splice(mid, 1)[0]
                , left = []
                , right = [];
        a.forEach(function(item) {
            if (item <= midItem)
                left.push(item);
            else
                right.push(item);
        });
        var _left = quickSort(left),
            _right = quickSort(right);
        console.log(_left)
        console.log(_right)
        return _left.concat(midItem, _right);
    }
var arr5 = [6,8,9,3,"a",11,"h",3,"c"];
console.log(quickSort(arr5))

數(shù)組內(nèi)置方法

console.log(arr5.sort(function(v1,v2){
    return v1 > v2;
}))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子甜孤,更是在濱河造成了極大的恐慌,老刑警劉巖裙戏,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異厕诡,居然都是意外死亡累榜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門灵嫌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壹罚,“玉大人,你說我怎么就攤上這事寿羞〔荩” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵绪穆,是天一觀的道長(zhǎng)辨泳。 經(jīng)常有香客問我,道長(zhǎng)玖院,這世上最難降的妖魔是什么菠红? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮难菌,結(jié)果婚禮上试溯,老公的妹妹穿的比我還像新娘。我一直安慰自己扔傅,他們只是感情好耍共,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著猎塞,像睡著了一般试读。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上荠耽,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天钩骇,我揣著相機(jī)與錄音,去河邊找鬼铝量。 笑死倘屹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的慢叨。 我是一名探鬼主播纽匙,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼拍谐!你這毒婦竟也來了烛缔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤轩拨,失蹤者是張志新(化名)和其女友劉穎践瓷,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亡蓉,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晕翠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了砍濒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淋肾。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖梯影,靈堂內(nèi)的尸體忽然破棺而出巫员,到底是詐尸還是另有隱情,我是刑警寧澤甲棍,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布简识,位于F島的核電站,受9級(jí)特大地震影響感猛,放射性物質(zhì)發(fā)生泄漏七扰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一陪白、第九天 我趴在偏房一處隱蔽的房頂上張望颈走。 院中可真熱鬧,春花似錦咱士、人聲如沸立由。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锐膜。三九已至毕箍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間道盏,已是汗流浹背而柑。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荷逞,地道東北人媒咳。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像种远,于是被迫代替她去往敵國和親涩澡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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