博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
直接插入排序
阅读量:5789 次
发布时间:2019-06-18

本文共 778 字,大约阅读时间需要 2 分钟。

hot3.png

插入排序的工作方式类似于排序一手扑克牌。

1. 整副牌分为2部分。

2. 左手是已经排序好的牌,右手是未排序的牌。

3. 初始时,左手有一张牌,右手是剩余的牌。

4. 右手从第二张牌开始和左手牌进行比较,因为左手牌是已经排好序的,所以从后往前进行比较。

5. 因为不需要额外的存储,所以在比较过程中,左手牌,要不断向后移动,给新的牌腾出位置。

6. 直到比较到开始位置,或找到新牌的位置,则停止向后移动。

7. 将新牌插入到找到的位置。

// Java代码void insertSort(int[] arr) {    // 从第二个位置开始比较    for (int i = 1; i < n; i++) {        // 先判断下当前相邻的两个数的大小,可以减少一次比较        if (a[i - 1] > a[i]) {                        int temp = a[i]; // 保存临时变量            int j = i; // 记录当前位置                        // 用当前位置的值,遍历和左侧已经排好序的数据进行比较            while (j > 0 && a[j - 1] > temp) { // 这个条件,和上面的if条件要一致                a[j] = a[j - 1]; // 数组向后移动位置,为新增加的数,腾出位置                j--; // 数组向前查找            }            a[j] = temp; // 将新的数插入到已经找到的位置        }    }}

 

转载于:https://my.oschina.net/android520/blog/1143118

你可能感兴趣的文章
自定义View以及事件分发总结
查看>>
人生第一个过万 Star 的 GitHub 项目诞生
查看>>
Mac下配置多个SSH-Key (gitLab)
查看>>
Gradle之module间依赖版本同步
查看>>
一些kindle资源
查看>>
Node第一天
查看>>
页面搭建工具总结及扩展架构思考
查看>>
java springcloud版b2b2c社交电商spring cloud分布式微服务(十五)Springboot整合RabbitMQ...
查看>>
SpringCloud使用Prometheus监控(基于Eureka)
查看>>
10g手动创建数据库
查看>>
Linux—文件系统
查看>>
运用Loadrunner测试Mysql数据库性能
查看>>
Spring MVC EL表达式不能显示
查看>>
Tomcat version 5.5 only supports J2EE 1.2, 1.3, and 1.4 Web modules
查看>>
【致青春】我们挥霍时间的年代
查看>>
WDS系列之四:自定义安装映像
查看>>
CentOS7 NTP server + keepalived
查看>>
jQuery 表单应用:全选/取消全选,表单验证,网页选项卡切换
查看>>
分布式计算相关
查看>>
Castle 整合.NET Remoting
查看>>