<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

        js基本算法:冒泡排序,二分查找

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 20:31:53
        文檔

        js基本算法:冒泡排序,二分查找

        js基本算法:冒泡排序,二分查找:知識(shí)擴(kuò)充: 時(shí)間復(fù)雜度:算法的時(shí)間復(fù)雜度是一個(gè)函數(shù),描述了算法的運(yùn)行時(shí)間。時(shí)間復(fù)雜度越低,效率越高。 自我理解:一個(gè)算法,運(yùn)行了幾次時(shí)間復(fù)雜度就為多少,如運(yùn)行了n次,則時(shí)間復(fù)雜度為O(n)。1.冒泡排序解析:1.比較相鄰的兩個(gè)元素,如果前一個(gè)比后一個(gè)大
        推薦度:
        導(dǎo)讀js基本算法:冒泡排序,二分查找:知識(shí)擴(kuò)充: 時(shí)間復(fù)雜度:算法的時(shí)間復(fù)雜度是一個(gè)函數(shù),描述了算法的運(yùn)行時(shí)間。時(shí)間復(fù)雜度越低,效率越高。 自我理解:一個(gè)算法,運(yùn)行了幾次時(shí)間復(fù)雜度就為多少,如運(yùn)行了n次,則時(shí)間復(fù)雜度為O(n)。1.冒泡排序解析:1.比較相鄰的兩個(gè)元素,如果前一個(gè)比后一個(gè)大

        知識(shí)擴(kuò)充:

          時(shí)間復(fù)雜度:算法的時(shí)間復(fù)雜度是一個(gè)函數(shù),描述了算法的運(yùn)行時(shí)間。時(shí)間復(fù)雜度越低,效率越高。

          自我理解:一個(gè)算法,運(yùn)行了幾次時(shí)間復(fù)雜度就為多少,如運(yùn)行了n次,則時(shí)間復(fù)雜度為O(n)。

        1.冒泡排序

        解析:1.比較相鄰的兩個(gè)元素,如果前一個(gè)比后一個(gè)大,則交換位置。

           2.第一輪的時(shí)候最后一個(gè)元素應(yīng)該是最大的一個(gè)。

           3.按照步驟一的方法進(jìn)行相鄰兩個(gè)元素的比較,這個(gè)時(shí)候由于最后一個(gè)元素已經(jīng)是最大的了,所以最后一個(gè)元素不用比較。

           

        function sort(elements){
         for(var i=0;ielements[j+1]){
         var swap=elements[j];
         elements[j]=elements[j+1];
         elements[j+1]=swap;
         }
         }
         }
        }
         
        var elements = [3, 1, 5, 7, 2, 4, 9, 6, 10, 8];
        console.log('before: ' + elements);
        sort(elements);
        console.log(' after: ' + elements);

        2.快速排序

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

        function quickSort(elements) {
         
          if (elements.length <= 1) { return elements; }
         
         var pivotIndex = Math.floor(elements.length / 2);
         
         var pivot = elements.splice(pivotIndex, 1)[0];
         
         
          var left = [];
         
          var right = [];
         
          for (var i = 0; i < elements.length; i++){
         
            if (elements[i] < pivot) {
         
              left.push(elements[i]);
         
            } else {
         
              right.push(elements[i]);
         
            }
         
          }
         
          return quickSort(left).concat([pivot], quickSort(right));
         
        };
         
        var elements=[5,6,2,1,3,8,7,1.2,5.5,4.5];
        alert(quickSort(elements));

        3.插入排序

        解析:

        (1) 從第一個(gè)元素開始,該元素可以認(rèn)為已經(jīng)被排序

        (2) 取出下一個(gè)元素,在已經(jīng)排序的元素序列中從后向前掃描

        (3) 如果該元素(已排序)大于新元素,將該元素移到下一位置

        (4) 重復(fù)步驟3,直到找到已排序的元素小于或者等于新元素的位置

        (5)將新元素插入到下一位置中

        (6) 重復(fù)步驟2

        insertSort: function(elements) {
        
         var i = 1,
         j, step, key, len = elements.length;
        
         for (; i < len; i++) {
        
         step = j = i;
         key = elements[j];
        
         while (--j > -1) {
         if (elements[j] > key) {
         elements[j + 1] = elements[j];
         } else {
         break;
         }
         }
        
         elements[j + 1] = key;
         }
        
         return elements;
        }

        2.二分查找

        解析:二分查找,也為折半查找。首先要找到一個(gè)中間值,通過與中間值比較,大的放又,小的放在左邊。再在兩邊中尋找中間值,持續(xù)以上操作,直到找到所在位置為止。

        (1)遞歸方法

        function binarySearch(data,item,start,end){
         var end=end || data.length-1;
         var start=start || 0;
         var m=Math.floor((start+end)/2);
         if(item==data[m]){
         return m;
         }else if(item

        (2)非遞歸方法

        function binarySearch(data, item){
         var h = data.length - 1,
         l = 0;
         while(l <= h){
         var m = Math.floor((h + l) / 2);
         if(data[m] == item){
         return m;
         }
         if(item > data[m]){
         l = m + 1;
         }else{
         h = m - 1;
         }
         }
         
         return false;
        }
        var arr=[34,12,5,123,2,745,32,4];
        binarySearch(arr,5);

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        js基本算法:冒泡排序,二分查找

        js基本算法:冒泡排序,二分查找:知識(shí)擴(kuò)充: 時(shí)間復(fù)雜度:算法的時(shí)間復(fù)雜度是一個(gè)函數(shù),描述了算法的運(yùn)行時(shí)間。時(shí)間復(fù)雜度越低,效率越高。 自我理解:一個(gè)算法,運(yùn)行了幾次時(shí)間復(fù)雜度就為多少,如運(yùn)行了n次,則時(shí)間復(fù)雜度為O(n)。1.冒泡排序解析:1.比較相鄰的兩個(gè)元素,如果前一個(gè)比后一個(gè)大
        推薦度:
        標(biāo)簽: js 算法 冒泡排序
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久精品国产亚洲AV果冻传媒| 亚洲AV无码AV男人的天堂| 亚洲国产成AV人天堂无码| 97精品免费视频| 亚洲白色白色永久观看| 免费在线观看一级片| 亚洲av无码不卡| 无码A级毛片免费视频内谢| 亚洲成AV人片在线观看WWW| 久久久久久一品道精品免费看| 免费A级毛片无码免费视| 狠狠色伊人亚洲综合网站色| 成人毛片18女人毛片免费96| 婷婷亚洲综合五月天小说在线| 在线观看黄片免费入口不卡| 国产亚洲一区二区精品| 免费国产黄网站在线观看| 亚洲毛片免费观看| 在线免费观看中文字幕| 一级一看免费完整版毛片| 亚洲成熟xxxxx电影| 毛片免费vip会员在线看| 猫咪免费人成在线网站| 亚洲色欲久久久综合网东京热 | 久久亚洲综合色一区二区三区| 精品久久亚洲中文无码| 日韩免费高清视频| 九九久久精品国产免费看小说| 免费在线看v网址| 亚洲a∨无码精品色午夜| 中国亚洲女人69内射少妇| 免费无码VA一区二区三区 | 老汉色老汉首页a亚洲| 永久免费视频网站在线观看| 最新亚洲精品国偷自产在线 | 亚洲av永久中文无码精品| 亚洲精品无码日韩国产不卡?V| 亚洲日本在线电影| 国产亚洲综合一区柠檬导航| 美女视频黄免费亚洲| 中文字幕成人免费高清在线 |