JAVA-基础-图解 插入排序

插入排序:

  代码逻辑:

  

 1 package cn.lk;
 2 
 3 public class Demo01 {
 4     public static void main(String[] args) {
 5         
 6         int a[]={1,58,62,45,874,12,496,152,123,-5,-45,-9};
 7         
 8         
 9         
10         
11 
12         //-插入排序
13         //--第一层for循环从下标为1的元素开始选择
14         for(int i =1;i){
15             int tmp=a[i];    //-创建一个临时变量将第一层for循环选中的元素存起来
16             int point=i;    //-创建一个标记变量将第一层for循环选中的元素的下标存起来
17             /*
18              * -第二层for循环选出来的元素和第一层for循环选出来的元素比较大小
19              * 这里的j=i-1表示:选择第一层for循环选中的元素的前一个元素
20              * 之后j--表示:倒着和a[i]比较大小
21              * */
22             for(int j=i-1;j>=0 && a[j]>tmp;j--){//在此设置升序或者降序(例子为升序)
23                 a[j+1]=a[j];//符合条件,则将小数的值传给大数
24                 point=j;    //将之前标记的下标改为大数的下标
25             }
26             //第二层for循环结束后才开始实际排序替换
27             a[point]=tmp;//-将临时变量存的元素赋值给当前标记的下标元素
28             //至此实现了两个元素值的置换
29         }
30         for (int i : a) {
31             System.out.println(i);
32         }
33     
34     }
35     
36      
37 }

 

 

 

    原理:

    JAVA-基础-图解 插入排序_第1张图片

    代码实现:

 1             /**
 2                     插入排序
 3             */
 4             public class Demo01{
 5                     public static void main(String args[]){
 6                             int nums [] = {1,34,56,8,-32,7,-9,0,235};
 7             
 8                     for(int i = 1;i){
 9                             int tmp = nums[i];
10                             int point = i;
11                             for(int j=i-1;j>=0&&nums[j]>tmp;j--){
12                                     nums[j+1]=nums[j];
13                                     point = j;
14                             }
15                             nums[point] = tmp;
16                     }
17             
18                     for(int n : nums){
19                             System.out.println(n);
20                     }
21                     }
22             }

 

你可能感兴趣的:(JAVA-基础-图解 插入排序)