zoukankan      html  css  js  c++  java
  • 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<a.length;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 }

        原理:

        

        代码实现:

     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<nums.length;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             }
  • 相关阅读:
    jQuery-选择器
    Html-CSS-细节处理
    JS-练习题
    将博客搬至CSDN
    Linux学习(推荐学习资源)——保持更新
    借助Git实现本地与GitHub远程双向传输(同步GitHub仓库)以及一些使用错误解决
    Linux学习使用Vim
    linux学习之Ubuntu
    在docker中创建使用MySQL,并实现远程连接navicat
    Swing系列之控件一
  • 原文地址:https://www.cnblogs.com/xiaoluohao/p/11305438.html
Copyright © 2011-2022 走看看