標籤:思路 包含 length e30 動作 相等 image java ima
一、什麼叫做插入排序法
有一個已經有序的資料序列,要求在這個已經排好的資料序列中插入一個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法——插入排序法
二、核心
插入排序的基本操作就是將一個資料插入到已經排好序的有序資料中,從而得到一個新的、個數加一的有序資料,演算法適用於少量資料的排序。 插入演算法把要排序的數組分成兩部分:第一部分包含了這個數組的所有元素,但將最後一個元素除外(讓數組多一個空間才有插入的位置),而第二部分就只包含這一個元素(即待插入元素)。在第一部分排序完成後,再將這個最後元素插入到已排好序的第一部分中 插入排序的原理其實很好理解,可以類比選擇排序。選擇排序時在兩個空間進行,等於說每次從舊的空間選出最值放到新的空間,而插入排序則是在同一空間進行 三、思路 從第二位元字開始,每一個數字都試圖跟它的前一個比較並做交換,並重複這個動作。直到前一個數字不存在或比它小或者相等的時候停下來
四、代碼
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-- }}
【JavaScript演算法】---插入排序