成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:說說你對插入排序的理解?如何實現?應用場景?

開源
插入排序(Insertion Sort),一般也被稱為直接插入排序。對于少量元素的排序,它是一個有效、簡單的算法。

[[427990]]

本文轉載自微信公眾號「JS每日一題」,作者灰灰。轉載本文請聯系JS每日一題公眾號。

一、是什么

插入排序(Insertion Sort),一般也被稱為直接插入排序。對于少量元素的排序,它是一個有效、簡單的算法

其主要的實現思想是將數據按照一定的順序一個一個的插入到有序的表中,最終得到的序列就是已經排序好的數據

插入排序的工作方式像許多人排序一手撲克牌,開始時,我們的左手為空并且桌子上的牌面向下

然后,我們每次從桌子上拿走一張牌并將它插入左手中正確的位置,該正確位置需要從右到左將它與已在手中的每張牌進行比較

例如一個無序數組 3、1、7、5、2、4、9、6,將其升序的結果則如下:

一開始有序表中無數據,直接插入3

從第二個數開始,插入一個元素1,然后和有序表中記錄3比較,1<3,所以插入到記錄 3 的左側

向有序表插入記錄 7 時,同有序表中記錄 3 進行比較,3<7,所以插入到記錄 3 的右側

向有序表中插入記錄 5 時,同有序表中記錄 7 進行比較,5<7,同時 5>3,所以插入到 3 和 7 中間

照此規律,依次將無序表中的記錄 4,9 和 6插入到有序表中

二、如何實現

將第一待排序序列第一個元素看做一個有序序列,把第二個元素到最后一個元素當成是未排序序列。

從頭到尾依次掃描未排序序列,將掃描到的每個元素插入有序序列的適當位置

如果待插入的元素與有序序列中的某個元素相等,則將待插入元素插入到相等元素的后面

用代碼表示則如下:

  1. function insertionSort(arr) { 
  2.     const len = arr.length; 
  3.     let preIndex, current
  4.     for (let i = 1; i < len; i++) { 
  5.         preIndex = i - 1; 
  6.         current = arr[i]; 
  7.         while(preIndex >= 0 && arr[preIndex] > current) { 
  8.             arr[preIndex+1] = arr[preIndex]; 
  9.             preIndex--; 
  10.         } 
  11.         arr[preIndex+1] = current
  12.     } 
  13.     return arr; 

在插入排序中,當待排序數組是有序時,是最優的情況,只需當前數跟前一個數比較一下就可以了,這時一共需要比較N- 1次,時間復雜度為O(n)

最壞的情況是待排序數組是逆序的,此時需要比較次數最多,總次數記為:1+2+3+…+N-1,所以,插入排序最壞情況下的時間復雜度為O(n^2)

通過上面了解,可以看到插入排序是一種穩定的排序方式

三、應用場景

插入排序時間復雜度是 O(n2),適用于數據量不大,算法穩定性要求高,且數據局部或整體有序的數列排序

參考文獻

 

  • https://baike.baidu.com/item/%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F/7214992
  • http://data.biancheng.net/view/65.html

 

責任編輯:武曉燕 來源: JS每日一題
相關推薦

2021-10-08 09:59:32

冒泡排序場景

2021-10-13 18:01:33

快速排序場景

2021-10-09 10:25:41

排序應用場景

2021-10-12 07:15:02

歸并排序場景

2021-09-29 07:24:20

場景數據

2021-09-28 07:12:09

測試路徑

2021-09-16 07:52:18

算法應用場景

2021-11-05 07:47:56

代理模式對象

2021-11-09 08:51:13

模式命令面試

2021-11-10 07:47:49

組合模式場景

2021-11-03 14:10:28

工廠模式場景

2021-08-16 08:33:26

git

2021-09-06 10:51:27

TypeScriptJavaScript

2021-11-11 16:37:05

模板模式方法

2021-11-22 23:50:59

責任鏈模式場景

2021-10-14 07:55:20

二分查找面試

2021-09-10 06:50:03

TypeScript裝飾器應用

2021-09-08 07:49:34

TypeScript 泛型場景

2021-11-04 06:58:32

策略模式面試

2021-05-31 10:35:34

TCPWebSocket協議
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人性生交大片 | 7777奇米影视 | 国产一区二区三区 | av网站在线看 | 成年精品 | 亚洲顶级毛片 | 91性高湖久久久久久久久_久久99 | 一区二区久久电影 | 久久精品久久久久久 | 国产精品1区2区3区 男女啪啪高潮无遮挡免费动态 | 精品一区二区三区视频在线观看 | 日韩中出 | 国产精品一区一区三区 | www国产成人免费观看视频 | 国产乱码精品一区二区三区五月婷 | 欧美精品一区二区三区在线播放 | 亚洲精品久久久一区二区三区 | 91影院| 国产精品永久免费视频 | 国产欧美精品一区二区色综合朱莉 | 91玖玖| 精品综合 | 中文字幕免费视频 | 做a视频在线观看 | 亚洲人成免费 | 国产麻豆乱码精品一区二区三区 | 亚洲国产一区在线 | 国产一区久久久 | 国内自拍视频在线观看 | 亚洲在线免费观看 | 一区二区三区不卡视频 | 99亚洲视频 | 久久精品一区二区 | 亚洲一区国产精品 | 日本精品裸体写真集在线观看 | 亚洲精品久| 综合久久综合久久 | 日本中文在线 | 欧美淫片| 91精品久久久久久久久久入口 | 久久免费国产 |