日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

TypeScript十大排序算法插入排序?qū)崿F(xiàn)示例詳解

瀏覽:177日期:2022-06-01 13:41:54
目錄
  • 一. 插入排序的定義
  • 二. 插入排序的流程
  • 三. 插入排序的圖解
  • 四. 插入排序的代碼
  • 五. 插入排序的時間復雜度
  • 六. 插入排序的總結(jié)

一. 插入排序的定義

插入排序就像是你打撲克牌,你從牌堆頂取一張牌,找到合適的位置插入到已有牌的順序中,并不斷重復這一步驟直到所有的牌都被 插入到合適的位置,最終使得整副牌有序。

與打牌類似,插入排序(Insertion sort)的實現(xiàn)方法是:

  • 首先假設第一個數(shù)據(jù)是已經(jīng)排好序的,接著取出下一個數(shù)據(jù),在已經(jīng)排好序的數(shù)據(jù)中從后往前掃描,找到比它小的數(shù)的位置,將該位置之后的數(shù)整體后移一個單位,然后再將該數(shù)插入到該位置。
  • 不斷重復上述操作,直到所有的數(shù)據(jù)都插入到已經(jīng)排好序的數(shù)據(jù)中,排序完成。

插入排序的優(yōu)勢在于它的性能表現(xiàn)在已經(jīng)有序的序列上比冒泡排序、選擇排序兩種算法要好。

  • 它的時間復雜度為O(n),因此,如果序列已經(jīng)被排好,插入排序?qū)让芭菖判蚝瓦x擇排序快得多。
  • 另外,插入排序空間復雜度為O(1),因此,對于內(nèi)存限制較小的情況,插入排序也是一個更優(yōu)的選擇。

二. 插入排序的流程

插入排序的流程如下:

  • 首先,假設數(shù)組的第一個元素已經(jīng)排好序了,因為它只有一個元素,所以可以認為是有序的。
  • 然后,從第二個元素開始,不斷與前面的有序數(shù)組元素進行比較。
  • 如果當前元素小于前面的有序數(shù)組元素,則把當前元素插入到前面的合適位置。
  • 否則,繼續(xù)與前面的有序數(shù)組元素進行比較。
  • 以此類推,直到整個數(shù)組都有序。
  • 循環(huán)步驟2~5,直到最后一個元素。
  • 完成排序。

三. 插入排序的圖解

四. 插入排序的代碼

以下是 TypeScript 實現(xiàn)的插入排序代碼,帶有詳細的注釋:

function insertionSort(arr: number[]): number[] {  // 對于數(shù)組的每一個元素,從它開始到0位置,比較該元素和前一個元素的大小  for (let i = 1; i < arr.length; i++) {    let current = arr[i];    let j = i - 1;    // 如果該元素小于前一個元素,那么前一個元素向后移動,并繼續(xù)向前比較    while (j >= 0 && arr[j] > current) {      arr[j + 1] = arr[j];      j--;    }    // 如果該元素大于前一個元素,那么它將放到合適的位置    arr[j + 1] = current;  }  // 返回排序后的數(shù)組  return arr;}// 測試數(shù)據(jù)const testArr = [5, 2, 9, 1, 5, 6];// 調(diào)用插入排序函數(shù)const sortedArr = insertionSort(testArr);// 打印結(jié)果console.log(sortedArr);

代碼執(zhí)行的過程:

  • 首先我們定義了一個 insertSort 函數(shù),并傳入一個數(shù)字數(shù)組作為參數(shù)。
  • 接著我們定義一個變量 current,它將存儲當前需要比較的數(shù)字。
  • 然后我們使用一個循環(huán),將數(shù)組的第二項到最后一項依次與前面的數(shù)字進行比較。
  • 在內(nèi)層循環(huán)中,我們首先將 j 定義為 i-1,然后每次執(zhí)行循環(huán)時,如果 j 大于等于 0 并且 arr[j] 大于 current,我們就交換 arr[j]arr[j + 1] 的值。
  • 在循環(huán)結(jié)束后,我們將 current 插入到正確的位置,并繼續(xù)比較下一個數(shù)字。
  • 當所有數(shù)字都被比較過后,我們就可以返回最終排序好的數(shù)組。

五. 插入排序的時間復雜度

插入排序的時間復雜度在最好的情況下為O(n),在最壞的情況下為O(n^2),平均時間復雜度為O(n^2)。

當數(shù)據(jù)已經(jīng)有序時,插入排序只需要做n-1次比較和0次移動,運行時間為O(n);

當數(shù)據(jù)完全逆序時,插入排序需要做n-1趟比較和3/2*(n-1)^2/2次移動,運行時間為O(n^2)。

由于插入排序的最好時間復雜度與最壞時間復雜度都接近O(n^2),所以插入排序適用于數(shù)據(jù)規(guī)模不大的場合,如果數(shù)據(jù)規(guī)模很大,通常使用其他算法。

六. 插入排序的總結(jié)

  • 插入排序是一種簡單而直觀的排序算法,它可以快速地對部分有序的數(shù)組進行排序。
  • 插入排序通過比較相鄰的元素并在需要時將其交換,來實現(xiàn)從小到大的排列。
  • 插入排序的時間復雜度在最好情況下是線性O(n),最壞情況下是O(n^2)。

總而言之,如果數(shù)組部分有序,插入排序可以比冒泡排序和選擇排序更快。

  • 但是如果數(shù)組完全逆序,則插入排序的時間復雜度比較高,不如快速排序或歸并排序。
  • 因此,在選擇排序算法時,應該根據(jù)需要選擇合適的算法。

以上就是TypeScript十大排序算法插入排序?qū)崿F(xiàn)示例詳解的詳細內(nèi)容,更多關(guān)于TypeScript插入排序算法的資料請關(guān)注其它相關(guān)文章!

標簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲一区二区三区四区电影| 免费在线看一区| 午夜国产精品视频| 日韩欧美在线精品| 欧美二区视频| 久久三级中文| 亚洲tv在线| 久久亚洲图片| 亚洲欧美视频| 日韩电影二区| 日韩88av| 高清av一区| 在线天堂中文资源最新版| 日韩中文字幕一区二区高清99| 99久久久久国产精品| www在线观看黄色| 久久女人天堂| 九九99久久精品在免费线bt| 国产精品大片免费观看| 少妇精品久久久一区二区三区| 亚洲国产欧美日本视频| 国产一区二区三区久久| av资源新版天堂在线| 精品九九在线| 国产亚洲人成a在线v网站| 国产欧美综合一区二区三区| 国产欧美日韩在线一区二区| 国产欧美一区| 欧美亚洲一区二区三区| 日本精品久久| 国产极品模特精品一二| 捆绑调教美女网站视频一区| 成人免费一区| 欧美特黄一级大片| 久久亚洲美女| 国产精品一区二区av日韩在线| 国产精品午夜一区二区三区| 国产精品777777在线播放| 国产精品v亚洲精品v日韩精品| 欧美国产极品| 98精品久久久久久久| 久久精选视频| 午夜在线播放视频欧美| 蜜桃av一区二区三区电影| 中文字幕亚洲在线观看| 日韩高清一区| 精品国产一区二| 欧美国产美女| 亚洲激情五月| 日韩一区二区三区在线看| 精品久久亚洲| 久久精品国产在热久久| 国产999精品在线观看| 亚洲国产日韩欧美在线| 亚洲一级淫片| 精品国产一区二区三区2021| 国产精品88久久久久久| 日韩一区精品| 精品午夜av| 欧美成人国产| 亚洲欧美专区| 国产福利片在线观看| 日韩av免费| 一区二区亚洲视频| 精品国产欧美日韩| 另类国产ts人妖高潮视频| 美女久久久精品| 日韩午夜电影| 国产一区丝袜| 亚洲久久视频| 久久激情中文| 久久午夜视频| 精品视频亚洲| 欧美1级日本1级| 日韩avvvv在线播放| 成人羞羞视频播放网站| 日韩欧美中文字幕电影| 国产超碰精品| **爰片久久毛片| 欧美日韩国产高清| 欧美精品成人| 麻豆9191精品国产| 国产不卡精品| 日本亚洲欧洲无免费码在线| 久久久久国产一区二区| 国产精品乱战久久久| 欧美日韩少妇| 91综合网人人| 亚洲午夜电影| 青草久久视频| 欧美日韩精品免费观看视频完整| 九九久久国产| 欧美影院视频| 日韩精品一级中文字幕精品视频免费观看 | 日韩va亚洲va欧美va久久| 快播电影网址老女人久久| 清纯唯美亚洲综合一区| 日韩一级欧洲| 欧美日韩免费观看视频| 国产精品麻豆成人av电影艾秋| 欧美aa国产视频| 97在线精品| 捆绑调教美女网站视频一区| 日本不卡视频在线| 亚洲一区av| 国产精品毛片在线看| 久久精品高清| 中文字幕在线官网| 国产精品久久久久77777丨| 国产精品视区| 婷婷综合五月| 久久九九精品| 91综合视频| 福利一区和二区| 国产乱码精品一区二区三区四区 | 中文字幕免费精品| 国产在线|日韩| 成人在线超碰| 麻豆精品视频在线观看视频| 日本综合精品一区| 免费观看日韩电影| 99综合视频| 久久久久久久久丰满| 丁香婷婷久久| 久久久精品国产**网站| 国产伦精品一区二区三区千人斩 | 亚洲麻豆一区| 亚洲三级观看| 中文字幕日韩高清在线| 亚洲无线观看| | 欧美日韩精品一本二本三本| 成年男女免费视频网站不卡| 日韩av中文字幕一区二区| 在线精品国产亚洲| 亚洲成人不卡| 亚洲综合电影| 欧美色图一区| 宅男噜噜噜66国产日韩在线观看| 欧洲激情综合| 国产国产精品| 日韩精品一二三区| 91成人精品在线| 欧美激情久久久久久久久久久| 国产精品久一| 成人在线超碰| 日韩欧美中文| 91av亚洲| 婷婷亚洲五月| 日本在线成人| 久久三级中文| 欧美日韩一区二区综合| 国产日韩综合| 日韩av成人高清| 精品深夜福利视频| 成人在线网站| 蜜芽一区二区三区| 国产精品xxxav免费视频| 成年男女免费视频网站不卡| 久久天堂成人| 综合激情在线| 国产免费av国片精品草莓男男 | 国产日韩欧美高清免费| 精品欠久久久中文字幕加勒比| 樱桃视频成人在线观看| 国产在线不卡| 日韩欧美在线精品| 久久男人天堂| 蜜桃一区二区三区在线| 国产精久久一区二区| 亚洲午夜精品久久久久久app| 综合欧美亚洲| 色乱码一区二区三区网站| 99国产精品99久久久久久粉嫩| 丝袜亚洲另类欧美| 国产精品jk白丝蜜臀av小说| 久久亚洲在线| 欧美三区不卡| 国产一区亚洲| 欧美偷窥清纯综合图区| 99久久久久国产精品| 日韩国产在线一| 欧美亚洲国产激情| 国产精品手机在线播放| 午夜久久免费观看| 欧美亚洲免费| 尤物tv在线精品| 久久激情五月婷婷| 欧美日韩激情| 国产色99精品9i| 91精品观看| 激情中国色综合| 91福利精品在线观看| 综合欧美亚洲| 美女精品在线| 综合亚洲色图| 喷白浆一区二区| 蜜臀a∨国产成人精品| 热久久免费视频| 蜜桃久久av一区|