JS排序算法总结:(三)插入排序

目的:掌握 插入排序 的 基本思想与过程、代码实现、时间复杂度

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)

posted @ 2018-08-28 10:40  Cassie_茜  阅读(319)  评论(0编辑  收藏  举报