算法笔记系列:插入排序
插入排序
实现原理:通过遍历比较相应数据来构建有序序列,对于其中未排序的元素,将会被从后至前地与已排序列表中的元素进行依次比较并移动,当找到相应目标位置后被插入。以此类推,直到所有元素均排序完毕。
实现1:
function insertionSort(arr) {for (var i = 0; i < arr.length; i++) {for (var j = i; j - 1 >= 0; j--) {if (arr[j] >= arr[j - 1]) {break;}swap(arr, j, j - 1);}}}function swap(arr, i, j) {var t = arr[i];arr[i] = arr[j];arr[j] = t;}
实现2:
function insertionSort(arr) {for (var i = 0; i < arr.length; i++) {var curr = arr[i];var j;for (j = i; j - 1 >= 0 && curr < arr[j - 1]; j--) {arr[j] = arr[j - 1];}arr[j] = curr;}}
