• 插入排序


    具体的执行步骤请详细看注释!!!

      package com.yongjar.test;
    
    
    /**
     * @author yongjar
     * @date 2021/3/2
     * 插入排序
     */
    public class InsertSort {
    
        static final int SIZE = 10;
    
        public static void insertionSort(int [] a) {
    
            int t,j;
            //a[0]=25 a[1] = 29,a[2]=21
            for (int i = 0; i <a.length ; i++) {
                // t = a[0] t = 25
                // t = a[1] t=29
                // t= a[2]  t = 21
                t = a[i];
                // j = i-1, j = (0-1)=-1
                // j = i-1  j=(1-1)=0
                // j = i-1  j=(2-1)=1
                j = i-1;
                //j=-1 j>=0 =false
                // j=0  j>=0 true  && t(29)<a[0](25) false
                // j=1 j>=0  true && t(21)<a[1](29)  true  continue
                while(j>=0 && t<a[j]) {
                        //a[1+1] = a[1];   a[2] = a[1](29)
                        // a[0+1] = a[0] a[1] = a[0]25
                        a[j+1] = a[j];
                        // j--  1--=0  ,返回执行while条件, j=0 j>=0 true && t(21) && t(21) < a[0]25 true
                        // j-- 0--=-1, 返回执行while条件, j=-1,false,结束while条件执行。
                        j--;
                }
    
                //a[-1+1]=25 a[0] = 25
                //a[0+1] = 29
                //a[-1+1] =21
                a[j+1] = t;
                System.out.println ("第" + i + "步排序结果是:");
    
    
                for (int k = 0; k < a.length ; k++) {
                    System.out.print(" " + a[k]);
                }
    
    
                System.out.println ();
            }
    
        }
    
    
        public static void main(String[] args) {
            int [] shuzu = new int[3];
            shuzu[0] = 25;
            shuzu[1] = 29;
            shuzu[2] = 21;
    
            System.out.print("排序前的数组为:
    ");
    
    
            System.out.print("
    ");
    
            insertionSort (shuzu);
    
            System.out.print("排序后的数组为:
    ");
    
    
            for (int i = 0; i < 3; i++) {
    
                System.out.print(shuzu[i] + " ");
    
            }
    
            System.out.println ();
    
    
        }
    }
    
    
    
  • 相关阅读:
    关于MVC与MVP的理解
    使用JDBC连接数据库
    常见DML语句汇总
    java字符常量
    java中Map,List与Set的区别
    面向对象重写(override)与重载(overload)区别
    嵌入式系统的体系结构 图解
    使用webpack + momentjs时, 需要注意的问题
    联想电脑屏幕亮度无法调节
    树形数据构造
  • 原文地址:https://www.cnblogs.com/jamal/p/14473642.html
Copyright © 2020-2023  润新知