【JavaScript算法】---插入排序(轉載自個人老師 Alley-巷子)

1、什麼叫作插入排序法算法

  有一個已經有序的數據序列,要求在這個已經排好的數據序列中插入一個數,但要求插入後此數據序列仍然有序,這個時候就要用到一種新的排序方法——插入排序法數組

 

2、核心spa

  插入排序的基本操做就是將一個數據插入到已經排好序的有序數據中,從而獲得一個新的、個數加一的有序數據,算法適用於少許數據的排序。 插入算法把要排序的 數組分紅兩部分:第一部分包含了這個數組的全部元素,但將最後一個元素除外(讓數組多一個空間纔有插入的位置),而第二部分就只包含這一個元素(即待插入元素)。在第一部分排序完成後,再將這個最後元素插入到已排好序的第一部分中
 
插入排序的原理其實很好理解,能夠類比選擇排序。選擇排序時在兩個空間進行,等於說每次從舊的空間選出最值放到新的空間,而插入排序則是在同一空間進行
 
3、思路
  從第二位數字開始,每個數字都試圖跟它的前一個比較並作交換,並重復這個動做。直到前一個數字不存在或比它小或者相等的時候停下來
 
                                                                           

4、代碼code

複製代碼
var arr = [19,3,22,7,55,9,3,8]
var temp;
for(var i=1;i<arr.length;i++){
    var index = i;
    while(index-1>=0 && arr[index - 1] >arr[index]){
        [arr[index],arr[index - 1]] = [arr[index - 1],arr[index]]

        index--
    }
}


for(var i=1;i<arr.length;i++){
    var index = i;
    while(index-1>=0 && arr[index - 1] >arr[index]){
       temp = arr[index];
       arr[index] = arr[index-1];
        arr[index-1] = temp;

        index--
    }
}
複製代碼
相關文章
相關標籤/搜索