频道栏目
首页 > 资讯 > 其他 > 正文

排序算法之插入排序解析

18-06-23        来源:[db:作者]  
收藏   我要投稿

排序算法之插入排序解析。

基本思想

插入排序非常类似于整扑克牌。

在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左地进行比较。无论什么时候,左手中的牌都是排好序的。

直接插入排序

  1. 从第一个元素开始,该元素可以认为已经被排序
  2. 取出下一个元素,在已经排序的元素序列中从后向前扫描
  3. 如果该元素(已排序)大于新元素,将该元素移到下一位置
  4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
  5. 将新元素插入到该位置后
  6. 重复步骤2~5
    private static int[] insertSort(int[] a) {
      int temp;
      int insertPoint;
    
      for (int i = 1; i < a.length; i++) {
    //存储待排序的元素值
    temp = a[i];
    //与待排序元素值作比较的元素的下标
    insertPoint = i - 1;
    //当前元素比待排序元素大
    while (insertPoint >= 0 && a[insertPoint] > temp) {
     a[insertPoint + 1] = a[insertPoint];
     insertPoint--;
    }
    //找到了插入位置,插入待排序元素
    a[insertPoint + 1] = temp;
      }
    
      return a;
    }

    二分插入排序

相关TAG标签
上一篇:windows7 redis启停脚本实例教程
下一篇:程序开发koa2起步教程
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站