目的:掌握 插入排序 的 基本思想与过程、代码实现、时间复杂度
1、基本思想与过程:
(1)假设前n个数组已经排列完成,将第n+1个元素插入其中,即 拿第n+1个元素 与 前n个元素 倒序比较,如果 第n+1个元素 小于 其中某元素,将两者交换位置。
(2)以此类推,直到最后一个元素插入完成。
2、代码实现:
function insert_sort(arr){ var len = arr && arr.length; var temp; var count = 0; for(var i=0;i<len-1;i++){ for(var j=i+1;j>0;j--){ if(arr[j] < arr[j-1]){ temp = arr[j-1]; arr[j-1] = arr[j]; arr[j] = temp; count++; }else{ //不需要交换 break; } } console.log('第'+i+'轮的比较次数为'+count); } return arr }
3、时间复杂度:O(n2)