java直接插入排序代码

 1 public class InsertSort {
 2 
 3     /**
 4      * 直接插入排序
 5      */
 6     public static void main(String[] args) {
 7         int a[] = { 10, 8, 14, 9,17,3,15 };
 8         int temp = 0;
 9         
10         
11         //排序我觉得应该知道,运行了多少次,直接插入排序先看前两个数
12         //然后看前三个数,然后前四个数,也就是最后循环走了a.length-1次,
13         //所以循环从i=1开始到i<a.length结束
14         for(int i=1;i<a.length;i++){
15             //j作为数组下标,从0开始
16             //temp临时比较的数,作为当前所选的个数元素的最后一个值
17             //比如第一次循环选了10,8  那么temp=8
18             //第二次循环8,10,14   那么temp=14
19             //第三次8,10,14,9那么temp=9
20             //第三次时候9<14 那么让14向后移位. 9<10那么10向后移位
21             //9>8不执行,此时j已经自减为0了,那么需要将temp=9,
22             //放在第二位也就是j+1位
23             int j=i-1;
24             temp=a[i];
25             
26             for (; j >=0&& temp < a[j]; j--) {
27                 a[j + 1] = a[j]; // 将大于temp 的值整体后移一个单位
28             }
29             
30             a[j + 1] = temp;
31             
32             
33         }
34         
35         for (int i = 0; i < a.length; i++) {
36             System.out.print(a[i]+",");
37         }
38 
39     }
40 
41 }

 

posted on 2016-10-24 14:37  一路致金  阅读(288)  评论(0编辑  收藏  举报

导航