<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關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScript實現經典排序算法之插入排序

        來源:懂視網 責編:小采 時間:2020-11-27 20:27:21
        文檔

        JavaScript實現經典排序算法之插入排序

        JavaScript實現經典排序算法之插入排序:插入排序的代碼實現雖然沒有冒泡排序和選擇排序那么簡單粗暴,但它的原理應該是最容易理解的了,因為只要打過撲克牌的人都應該能夠秒懂。像排序一手撲克牌,開始時,我們的左手為空并且桌子上的牌面向下。然后,我們每次從桌子上拿走一張牌并將它插入左手中正
        推薦度:
        導讀JavaScript實現經典排序算法之插入排序:插入排序的代碼實現雖然沒有冒泡排序和選擇排序那么簡單粗暴,但它的原理應該是最容易理解的了,因為只要打過撲克牌的人都應該能夠秒懂。像排序一手撲克牌,開始時,我們的左手為空并且桌子上的牌面向下。然后,我們每次從桌子上拿走一張牌并將它插入左手中正

        插入排序的代碼實現雖然沒有冒泡排序和選擇排序那么簡單粗暴,但它的原理應該是最容易理解的了,因為只要打過撲克牌的人都應該能夠秒懂。像排序一手撲克牌,開始時,我們的左手為空并且桌子上的牌面向下。然后,我們每次從桌子上拿走一張牌并將它插入左手中正確的位置。為了找到一張牌的正確位置,我們從右到左將它與已在手中的每張牌進行比較,拿在左手上的牌總是排序好的,原來這些牌是桌子上牌堆中頂部的牌。

        1)算法原理

        插入排序(Insertion-Sort)的算法描述是一種簡單直觀的排序算法。它的工作原理是通過構建有序序列,對于未排序數據,在已排序序列中從后向前掃描,找到相應位置并插入。插入排序在實現上,通常采用in-place排序(即只需用到O(1)的額外空間的排序),因而在從后向前掃描過程中,需要反復把已排序元素逐步向后挪位,為最新元素提供插入空間。

        2)算法描述和實現

        一般來說,插入排序都采用in-place在數組上實現。具體算法描述如下:

        <1> 從第一個元素開始,該元素可以認為已經被排序;

        <2> 取出下一個元素,在已經排序的元素序列中從后向前掃描;

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

        <4> 重復步驟3,直到找到已排序的元素小于或者等于新元素的位置;

        <5> 將新元素插入到該位置后;

        <6> 重復步驟2~5。

        3)JavaScript代碼實現

        function insertSort(arr) { 
         for (var i = 1; i < arr.length; i++) { 
         var temp = arr[i]; 
         var j = i - 1; 
         while (j >= 0 && arr[j] > temp) { 
         arr[j + 1] = arr[j]; 
         j--; 
         } 
         arr[j + 1] = temp; 
         } 
         return arr; 
         } 
        var arr = [1, 45, 37, 5, 48, 15, 37, 26, 29, 2, 46, 4, 17, 50, 52]; 
        console.log(insertSort(arr));

        改進插入排序: 查找插入位置時使用二分查找的方式。

        步驟:
        <1> 從第一個元素開始,該元素可以認為已經被排序;
        <2> 取出下一個元素,在已經排序的元素序列中二分查找到第一個比它大的數的位置;
        <3> 將新元素插入到該位置后;

        function binaryInsertionSort(arr) { 
         for (var i = 1; i < arr.length; i++) { 
         var key = arr[i],left = 0,right = i - 1; 
         while (left <= right) { 
         var middle = parseInt((left + right) / 2); 
         if (key < arr[middle]) { 
         right = middle - 1; 
         } else { 
         left = middle + 1; 
         } 
         } 
         for (var j = i - 1; j >= left; j--) { 
         arr[j + 1] = arr[j]; 
         } 
         arr[left] = key; 
         } 
         return arr; 
        } 
        var arr = [1, 45, 37, 5, 48, 15, 37, 26, 29, 2, 46, 4, 17, 50, 52]; 
        console.log(binaryInsertionSort(arr));

        4)算法分析

        最佳情況:輸入數組按升序排列。T(n) = O(n)
        最壞情況:輸入數組按降序排列。T(n) = O(n2)
        平均情況:T(n) = O(n2)

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScript實現經典排序算法之插入排序

        JavaScript實現經典排序算法之插入排序:插入排序的代碼實現雖然沒有冒泡排序和選擇排序那么簡單粗暴,但它的原理應該是最容易理解的了,因為只要打過撲克牌的人都應該能夠秒懂。像排序一手撲克牌,開始時,我們的左手為空并且桌子上的牌面向下。然后,我們每次從桌子上拿走一張牌并將它插入左手中正
        推薦度:
        標簽: js 排序 javascript
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲无码黄色网址| 免费一级特黄特色大片在线| 成人无码a级毛片免费| a级毛片在线免费| 免费国产黄线在线观看| 四虎国产精品免费视| 国产成人亚洲综合色影视| 亚洲网站在线免费观看| 国产av无码专区亚洲av毛片搜| 岛国岛国免费V片在线观看 | 亚洲国产精品无码久久一线| 国产无限免费观看黄网站| 无人在线观看完整免费版视频| 亚洲欧洲一区二区三区| 亚洲五月丁香综合视频| 少妇亚洲免费精品| 91成人免费观看网站| 四虎亚洲国产成人久久精品| 亚洲一区二区在线免费观看| 精品国产亚洲AV麻豆| 777爽死你无码免费看一二区| 四虎永久在线精品免费影视| 日韩一区二区三区免费播放| 亚洲区小说区激情区图片区| 亚洲乱理伦片在线观看中字| 伊人久久免费视频| 亚洲国产一区二区三区| 两个人的视频www免费| 亚洲黄色在线观看视频| 3344在线看片免费| 亚洲自国产拍揄拍| 日韩精品成人亚洲专区| 久久WWW免费人成—看片| 亚洲电影唐人社一区二区| 免费视频淫片aa毛片| 亚洲人成7777影视在线观看| 1a级毛片免费观看| 亚洲精品国产福利片| 国产精品黄页在线播放免费| 久久精品国产亚洲av瑜伽| 国产亚洲无线码一区二区|