电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

TypeScript十大排序算法插入排序實現示例詳解

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

一. 插入排序的定義

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

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

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

插入排序的優勢在于它的性能表現在已經有序的序列上比冒泡排序、選擇排序兩種算法要好。

  • 它的時間復雜度為O(n),因此,如果序列已經被排好,插入排序將會比冒泡排序和選擇排序快得多。
  • 另外,插入排序空間復雜度為O(1),因此,對于內存限制較小的情況,插入排序也是一個更優的選擇。

二. 插入排序的流程

插入排序的流程如下:

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

三. 插入排序的圖解

四. 插入排序的代碼

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

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

代碼執行的過程:

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

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

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

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

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

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

六. 插入排序的總結

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

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

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

以上就是TypeScript十大排序算法插入排序實現示例詳解的詳細內容,更多關于TypeScript插入排序算法的資料請關注其它相關文章!

標簽: JavaScript
主站蜘蛛池模板: 北京环球北美考试院【官方网站】|北京托福培训班|北京托福培训 | 成都装修公司-成都装修设计公司推荐-成都朗煜装饰公司 | 开平机_纵剪机厂家_开平机生产厂家|诚信互赢-泰安瑞烨精工机械制造有限公司 | 电镀标牌_电铸标牌_金属标贴_不锈钢标牌厂家_深圳市宝利丰精密科技有限公司 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | HDPE土工膜,复合土工膜,防渗膜价格,土工膜厂家-山东新路通工程材料有限公司 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 包塑丝_高铁绑丝_地暖绑丝_涂塑丝_塑料皮铁丝_河北创筹金属丝网制品有限公司 | 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | 雪花制冰机(实验室雪花制冰机)百科| 塑钢件_塑钢门窗配件_塑钢配件厂家-文安县启泰金属制品有限公司 深圳南财多媒体有限公司介绍 | 活性氧化铝球|氧化铝干燥剂|分子筛干燥剂|氢氧化铝粉-淄博同心材料有限公司 | 亮点云建站-网站建设制作平台| 隐形纱窗|防护纱窗|金刚网防盗纱窗|韦柏纱窗|上海青木装潢制品有限公司|纱窗国标起草单位 | 食安观察网| 不锈钢丸厂家,铝丸,铸钢丸-淄博智源铸造材料有限公司 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 小青瓦丨古建筑瓦丨青瓦厂家-宜兴市徽派古典建筑材料有限公司 | 行业分析:提及郑州火车站附近真有 特殊按摩 ?2025实地踩坑指南 新手如何避坑不踩雷 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 合肥废气治理设备_安徽除尘设备_工业废气处理设备厂家-盈凯环保 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 不锈钢电动球阀_气动高压闸阀_旋塞疏水调节阀_全立阀门-来自温州工业阀门巨头企业 | 吸污车_吸粪车_抽粪车_电动三轮吸粪车_真空吸污车_高压清洗吸污车-远大汽车制造有限公司 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 磁粉制动器|张力控制器|气胀轴|伺服纠偏控制器整套厂家--台灵机电官网 | 浩方智通 - 防关联浏览器 - 跨境电商浏览器 - 云雀浏览器 | 模具硅橡胶,人体硅胶,移印硅胶浆厂家-宏图硅胶科技 | 阿里巴巴诚信通温州、台州、宁波、嘉兴授权渠道商-浙江联欣科技提供阿里会员办理 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 中国品牌排名投票_十大品牌榜单_中国著名品牌【中国品牌榜】 | 锥形螺带干燥机(新型耙式干燥机)百科-常州丰能干燥工程 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 亳州网络公司 - 亳州网站制作 - 亳州网站建设 - 亳州易天科技 | 地磅-电子地磅维修-电子吊秤-汽车衡-无人值守系统-公路治超-鹰牌衡器 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 温室大棚建设|水肥一体化|物联网系统 | 美的商用净水器_美的直饮机_一级代理经销商_Midea租赁价格-厂家反渗透滤芯-直饮水批发品牌售后 |