java简单排序学习之插入排序
2016-04-25 09:28
441 查看
插入排序也是一个很重要的东西,我们通过现在我们想要插入的数和前面的比较,如果没有到最前面,或者当前的数一直大于或者一直小于(这取决于降序还是升序),那么我们就一直移动,如果找到了不符合条件的,那么就将我们需要的数插入到该下标的后一位。当然我们需要插入的数是需要提前保存的,当然,这里你可能还有点不清楚,当你看我的代码和每一步的注释应该就懂了。
package www.jk.sort; /** * * @author jk * 这段代码是实现插入排序,感觉以前总是理解不了,今天看了一下感觉也是蛮简单的啊,因为第一个数一直就在的,所以就从第二个数开始,然后找到大于或者小于它的数 * ,因为找到的数刚好是大于或者是小于它的,那么插入的位置就应该在它的后面的那位,所以就这样就完成插排序了啊, * */ public class test { public static void main(String[] args) { int[] a = { 1, 8, 3, 5, 6, 2, 9 }; insertSort(a); for (int i = 0; i < a.length; i++) { System.out.println(a[i]); } } public static void insertSort(int[] a) { // 第一层循环,我们需要启动while循环的数目,因为是插入,所以是从第二个开始的 // firt loop,the time of while we need to launch for (int i = 1; i < a.length; i++) { // 记录当前想要插入的数 // record the current number int t = a[i]; // 当前想要插入的数的下标 // record the index that we want to insert int j = i - 1; // 如果数组没有到最开始,或者是t一直大于a[j]的话,就一直移动 // if the array is not in the beginning,and t>a[j],continue move while (j >= 0 && t > a[j]) { a[j + 1] = a[j]; j--; } // 因为我们最后找到的是刚好大于目前的这个数,所以我们需要插入在它的后面 // insert the number a[j + 1] = t; } } }
相关文章推荐
- Java对象表示方法1:序列化、反序列化和transient关键字的作用
- XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法
- java简单排序之冒泡排序
- struts2:通配符的使用
- java基础算法学习之概率算法
- java集合框架10——TreeMap和源码分析(一)
- 为什么在Spring的配置里,最好不要配置xsd文件的版本号
- Java遍历集合方法分析(实现原理、算法性能、适用场合)
- Java学习-15天
- Java学习-14天
- 从追MM谈Java的23种设计模式(转
- 深入分析 Java 中的中文编码问题
- Java开发中的23种设计模式详解(转)
- 【毕业生推荐系统】(3) 实现效果-完成80%
- java中静态代码块的用法 static用法详解
- Java中List集合的遍历
- 深入理解java异常处理机制
- JAVA代码编写的30条建议
- JAVAABC-java中的常见小问题
- 多线程 《深入浅出 Java Concurrency》目录