js插入排序原理
每一轮都从输入数据离删除掉一个元素,并将其正确插入到已经排序好的范围之内.
/**
* js插入排序
* @param {array} arr array to sort
* @param {number} n array.length
*/
function insertionSort(arr, n) {
// 此方法改变原数组
if (Array.isArray(arr) && arr.length >= 2 && n == arr.length) {
let i, j, v;
for (i = 1; i <= n - 1; i++) {
v = arr[i]; // 左侧有序数组最大值
j = i;
// 从最循环元素与之前的有序数组关系比较 如果比此元素大则进行交换
while (arr[j - 1] > v && j >= 1) {
arr[j] = arr[j - 1];
j--;
}
arr[j] = v;
}
return true;
}
return false;
}