插入排序是一种比较直观的排序方式。插入排序:把未排序的数组中第一个元素当作一个有序的数组,取剩余未排序的第一个元素,和有序数组的最后一个元素比较,如果小于最后一个元素,最后一个元素后移一位,直到找到合适的位置插入。循环执行上述操作,直达未排序的元素执行完。(这个类似于打牌,洗牌)
插入排序还可以进行一些优化(插入操作过程中,进行二分查找对比,进行插入操作)

function insertSort(arr){
var len = arr.length;
var preIndex, current;
for(var i = 1, i < len - 1; i++){
preIndex = i - 1;
current = arr[i];
while(preIndex >= 0 && arr[preIndex] > current){
arr[preIndex + 1] = arr[preIndex];
preIndex--;
}
arr[preIndex + 1] = current;
}
return arr;
}