中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

數(shù)據(jù)結(jié)構(gòu)中的各種排序方法小結(jié)(JS實(shí)現(xiàn))
來源:易賢網(wǎng) 閱讀:1092 次 日期:2016-07-29 14:26:36
溫馨提示:易賢網(wǎng)小編為您整理了“數(shù)據(jù)結(jié)構(gòu)中的各種排序方法小結(jié)(JS實(shí)現(xiàn))”,方便廣大網(wǎng)友查閱!

下面小編就為大家?guī)硪黄獢?shù)據(jù)結(jié)構(gòu)中的各種排序方法小結(jié)(JS實(shí)現(xiàn))。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。

新技術(shù)一直在不斷變化,掌握一些基礎(chǔ)是未來學(xué)習(xí)不斷更新的技術(shù)的堅(jiān)實(shí)基礎(chǔ)。近來閑來無事,為了溫習(xí)一下從前學(xué)的數(shù)據(jù)結(jié)構(gòu),將數(shù)據(jù)結(jié)構(gòu)中的排序算法用JS實(shí)現(xiàn)了一遍,并在本文末尾處嵌入了DEMO。

簡單排序

冒泡排序

冒泡排序是最簡單排序算法,時(shí)間復(fù)雜度為n的平方,代碼如下:

function bubbleSort(array) {

      for (var i = 0; i < array.length; i++) {

        for (var j = array.length; j > 0; j--) {

          if (array[j] < array[j - 1]) {

            var temp = array[j - 1];

            array[j - 1] = array[j];

            array[j] = temp;

          }

        }

        /* 輸出結(jié)果 */

        document.write("這是第 + (i + 1) + "次循環(huán)·,結(jié)果為:");

        for (var k = 0; k < array.length; k++) {

          document.write(array[k] + ",");

        }

        document.write("<br />");

        /* 輸出結(jié)果結(jié)束 */

      }

    }

直接插入排序

直接插入排序也屬于簡單排序算法,時(shí)間復(fù)雜度也為n的平方,但性能略好于冒泡排序,代碼如下:

function insertSort(array) {

      var temp;

      for (var i = 1; i < array.length; i++) {

        var temp = array[i];

        for (var j = i; j > 0 && temp < array[j - 1]; j--) {

          array[j] = array[j - 1];

        }

        array[j] = temp

        /* 輸出結(jié)果 */

        document.write("第? + i + "遍排序的結(jié)果是:")

        for (var n = 0; n < array.length; n++) {

          document.write(array[n] + ",");

        }

        document.write("<br />")

        /* 輸出結(jié)果結(jié)束 */

      }

    }

選擇排序

選擇排序也屬于簡單排序算法,時(shí)間復(fù)雜度也為n的平方,性能同樣略微好于冒泡排序,代碼如下:

function selectSort(array) {

      var min, temp; ;

      for (var i = 0; i < array.length; i++) {

        min = i;

        for (var j = i + 1; j < array.length; j++) {

          if (array[min] > array[j])

            min = j;

        }

        if (min != i) {

          temp = array[i];

          array[i] = array[min];

          array[min] = temp;

        }

        /* 輸出結(jié)果 */

        document.write("第 + i + "遍排序的結(jié)果是:")

        for (var n = 0; n < array.length; n++) {

          document.write(array[n] + ",");

        }

        document.write("<br />")

        /* 輸出結(jié)果結(jié)束 */

      }

    }

復(fù)雜排序

希爾排序

希爾排序是插入排序的升級(jí),1959年希爾通過將簡單排序中兩兩比較改為設(shè)置步長跳躍式比較而突破了n的平方的時(shí)間復(fù)雜度,希爾排序根據(jù)步長的不同時(shí)間復(fù)雜度由最好的nlogn到最壞的n的平方。代碼如下:

function shallSort(array) {

      var increment = array.length;

      var i

      var temp; //暫存

      var count = 0;

      do {

        increment = Math.floor(increment / 3) + 1;

        for (i = increment; i < array.length; i++) {

          if (array[i] < array[i - increment]) {

            temp = array[i];

            for (var j = i - increment; j > 0 && temp < array[j]; j -= increment) {

              array[j + increment] = array[j];

            }

            array[j + increment] = temp;

            /* 輸出結(jié)果 */

            count++;

            document.write("<br />第 + count + "遍排序的結(jié)果是:")

            for (var n = 0; n < array.length; n++) {

              document.write(array[n] + ",");

            }

            /* 輸出結(jié)果結(jié)束 */

          }

        }

      }

      while (increment > 1)

    }

堆排序

堆排序是選擇排序的升級(jí),通過不斷構(gòu)建大頂堆或者小頂堆來選擇最大或者最小的值放入隊(duì)列前端進(jìn)行排序,堆排序任何情況下的時(shí)間復(fù)雜度都為nlogn,代碼如下:

function heapSort(array) {

      var temp;

      var i;

      for (i = Math.floor(array.length / 2); i >= 0; i--) {

        heapAdjust(array, i, array.length - 1); //將數(shù)組array構(gòu)建成一個(gè)大頂堆

      }

      for (i = array.length - 1; i >= 0; i--) {

        /*把根節(jié)點(diǎn)交換出去*/

        temp = array[i];

        array[i] = array[0];

        array[0] = temp;

        /*余下的數(shù)組繼續(xù)構(gòu)建成大頂堆*/

        heapAdjust(array, 0, i - 1);

        /* 輸出結(jié)果 */

        document.write("<br />第 + (array.length - i).toString() + "遍排序的結(jié)果是:")

        for (var n = 0; n < array.length; n++) {

          document.write(array[n] + ",");

        }

        /* 輸出結(jié)果結(jié)束 */

      }

    }

    //要調(diào)整的子樹

    //start為數(shù)組開始下標(biāo)

    //max是數(shù)組結(jié)束下標(biāo)

    function heapAdjust(array, start, max) {

      var temp, j;

      temp = array[start];//temp是根節(jié)點(diǎn)的值

      for (j = 2 * start; j < max; j *= 2) {

        if (j < max && array[j] < array[j + 1]) { //取得較大孩子的下標(biāo)

          ++j;

        }

        if (temp >= array[j])

          break;

        array[start] = array[j];

        start = j;

      }

      array[start] = temp;

    }

歸并排序

歸并排序是復(fù)雜排序中唯一一個(gè)穩(wěn)定排序,通過將待排序數(shù)組進(jìn)行分拆再合并來進(jìn)行排序,歸并排序時(shí)間復(fù)雜度為n的平方,代碼如下:

//source源數(shù)組    //dest目標(biāo)數(shù)組

    //s起始下標(biāo)

    //t目標(biāo)下標(biāo)

    function mSort(source, dest, s, t) {

      var m; //取中間值

      var dest2 = new Array();

      if (s == t) {

        dest[s] = source[s];

      }

      else {

        m = Math.floor((s + t) / 2);

        mSort(source, dest2, s, m);

        mSort(source, dest2, m+1 , t);

        merge(dest2, dest, s, m, t);

        /* 輸出結(jié)果 */

        document.write("<br />第 + ++count + "遍排序的結(jié)果是:")

        for (var n = 0; n < dest.length; n++) {

          document.write(array[n] + ",");

        }

        /* 輸出結(jié)果結(jié)束 */

      }

    }

    //將兩個(gè)數(shù)組按照從小到大的順序融合

    //source原數(shù)組

    //dest排序后的數(shù)組

    //s第一個(gè)下標(biāo)

    //m第二個(gè)數(shù)組下標(biāo)

    //總長度

    function merge(source, dest, s, m, n) {

      for (var j = m+1, k = s; j <= n && s <= m; k++) {

        if (source[s] < source[j]) {

          dest[k] = source[s++];

        }

        else {

          dest[k] = source[j++];

        }

      }

        //將剩余排不完的有序數(shù)組加入到dest的末端

        if (s <= m) {

          for (var l = 0; l <= m - s; l++) {

            dest[k + l] = source[s+l];

          }

        }

        if (j <= n) {

          for (var l = 0; l <= n - j; l++) {

            dest[k + l] = source[j+l];

          }

      }

    }

快速排序

快速排序是目前已知的速度最快的排序,時(shí)間復(fù)雜度為nlogn,代碼如下:

var count = 0;

    function quickSort(array, low, high) {

      var temp;

      if (low < high) {

        var keypoint = QuickSortHelp(array, low, high);

        count++;

        document.write("<br />第臺(tái)? + count + "遍括?排?序ò的?結(jié)á果?是?:")

        for (var l = 0; l < array.length; l++) {

          document.write(array[l] + ",");

        }

        quickSort(array, low, keypoint - 1);

        quickSort(array, keypoint + 1, high);

        }

    }

    function QuickSortHelp(array, low, high) {

      while (low < high) {

        while (low < high && array[low] <= array[high]) {

          high--;

        }

        temp = array[low];

        array[low] = array[high];

        array[high] = temp;

        while (low < high && array[low] <= array[high]) {

          low++

        }

        temp = array[low];

        array[low] = array[high];

        array[high] = temp;

      }

      return low;

    }

以上這篇數(shù)據(jù)結(jié)構(gòu)中的各種排序方法小結(jié)(JS實(shí)現(xiàn))就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考

更多信息請查看網(wǎng)絡(luò)編程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2026上岸·考公考編培訓(xùn)報(bào)班

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲图片在区色| 欧美日本高清| 欧美精品二区| 激情久久五月天| 中日韩美女免费视频网址在线观看| 亚洲一区二区精品在线| 欧美区日韩区| av成人免费观看| 欧美日韩另类一区| 亚洲视频在线观看| 国产欧美va欧美va香蕉在| 久久三级福利| 极品中文字幕一区| 欧美日韩一区二区三区在线看| 日韩亚洲欧美一区二区三区| 国产精品人人爽人人做我的可爱 | 麻豆精品视频在线| 99精品视频免费观看视频| 国产精品成人一区二区网站软件 | 亚洲欧洲精品一区| 国产精品亚洲一区二区三区在线| 久色婷婷小香蕉久久| 亚洲神马久久| 亚洲韩日在线| 国产亚洲一区二区三区在线观看| 欧美成人午夜免费视在线看片| 亚洲天堂成人在线视频| 在线免费精品视频| 国产欧美日韩三级| 国产精品va| 欧美国产日韩在线| 久久精品视频免费| 亚洲综合色视频| 99re66热这里只有精品4| 狠狠做深爱婷婷久久综合一区| 欧美视频网址| 欧美激情综合| 乱中年女人伦av一区二区| 欧美伊人精品成人久久综合97 | 在线观看精品| 国产精品久久久久77777| 欧美高清在线观看| 玖玖综合伊人| 久久久免费观看视频| 欧美在线综合视频| 欧美一区二区三区四区在线| 亚洲综合成人在线| 亚洲性线免费观看视频成熟| 99在线|亚洲一区二区| 亚洲精品乱码视频| 亚洲精品中文在线| 亚洲精品久久久久久久久久久久 | 亚洲精品国产无天堂网2021| 激情欧美一区二区三区在线观看| 国产欧美激情| 日韩网站在线观看| 在线电影一区| 在线成人免费观看| 亚洲动漫精品| 亚洲日本中文字幕区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲第一中文字幕在线观看| 韩国成人理伦片免费播放| 国产日韩欧美在线一区| 国产区二精品视| 激情成人亚洲| 91久久精品一区| 亚洲精品视频在线观看网站| 99精品福利视频| 亚洲在线成人| 久久久久免费视频| 欧美激情国产日韩精品一区18| 欧美精品亚洲一区二区在线播放| 欧美性大战xxxxx久久久| 国产精品swag| 韩国美女久久| 亚洲免费av观看| 午夜一级在线看亚洲| 久久久精品动漫| 欧美夫妇交换俱乐部在线观看| 欧美三级午夜理伦三级中文幕| 国产精品午夜国产小视频| 精品51国产黑色丝袜高跟鞋| 亚洲毛片av| 午夜精品视频一区| 欧美承认网站| 国产精品永久免费视频| 亚洲二区在线观看| 亚洲一区二区高清视频| 久久大香伊蕉在人线观看热2| 六月天综合网| 国产精品日产欧美久久久久| 尤物在线观看一区| 亚洲午夜伦理| 久久在线免费| 国产精品观看| 91久久精品日日躁夜夜躁国产| 一区二区三区日韩欧美精品| 久久精品国产一区二区电影| 欧美激情精品久久久| 国产日韩欧美日韩| 亚洲免费观看| 乱码第一页成人| 国产日本精品| 欧美一区二区三区视频免费播放| 欧美大片在线观看| 激情久久一区| 亚洲一区久久久| 免费成人美女女| 国产日本欧美一区二区三区在线| 亚洲精品久久视频| 久久综合色天天久久综合图片| 国产精品免费视频xxxx| 99riav1国产精品视频| 美女黄网久久| 精东粉嫩av免费一区二区三区| 午夜欧美大片免费观看 | 久久综合一区二区| 国产区日韩欧美| 亚洲影院高清在线| 欧美午夜不卡在线观看免费| 在线免费观看一区二区三区| 欧美一区二区三区视频在线观看| 国产精品久久久久av| 9i看片成人免费高清| 欧美成人精品激情在线观看| 激情六月综合| 久久久午夜精品| 国产伊人精品| 久久久久久久精| 国内精品久久久久久久果冻传媒| 性久久久久久久久久久久| 国产精品福利在线观看网址| 在线亚洲精品福利网址导航| 欧美日韩国产欧| 99精品视频免费| 国产精品久久久久久久久久直播| 艳妇臀荡乳欲伦亚洲一区| 欧美日韩一区二区精品| 一区二区激情视频| 国产精品日韩欧美大师| 亚久久调教视频| 狠狠干成人综合网| 久久最新视频| 亚洲美女视频网| 欧美性猛片xxxx免费看久爱| 亚洲欧美另类综合偷拍| 国产欧美一区视频| 久久久久久网站| 亚洲国内精品| 欧美成人精品一区| 亚洲图片你懂的| 国产欧美精品xxxx另类| 久久精品99国产精品日本| 一区二区亚洲欧洲国产日韩| 欧美+日本+国产+在线a∨观看| 亚洲精品久久久久久久久久久久久 | 午夜精品国产更新| 国产亚洲视频在线| 欧美日韩免费观看中文| 亚洲在线一区| 影音先锋在线一区| 欧美日韩在线电影| 欧美综合国产精品久久丁香| 亚洲激情av| 国产午夜精品一区二区三区欧美| 免费成人高清| 亚洲欧美日韩精品久久奇米色影视| 精品69视频一区二区三区| 欧美日韩小视频| 久久精品国产一区二区电影| 日韩亚洲欧美高清| 加勒比av一区二区| 国产精品入口福利| 女女同性精品视频| 性欧美激情精品| 亚洲狼人精品一区二区三区| 国产日韩精品久久久| 欧美激情精品久久久久| 久久精品1区| 亚洲网站视频福利| 伊人久久大香线| 国产精品女主播一区二区三区| 欧美大片国产精品| 欧美在线观看日本一区| 99热精品在线| 在线不卡亚洲| 国产亚洲欧美日韩在线一区| 欧美午夜国产| 欧美女同在线视频| 嫩草国产精品入口| 久久久久久久一区二区三区| 亚洲综合三区| 亚洲视频在线观看| 日韩网站在线观看| 亚洲激情在线| 亚洲高清视频一区| 黄色欧美成人| 国产一区在线播放| 国产精品综合|