zoukankan      html  css  js  c++  java
  • 5 Java 插入排序

     1、基本思想

    将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小则依次交换,直到出现比选择元素小的元素或者全部元素都比较过为止。

    2、算法描述

    ①. 从第一个元素开始,该元素可以认为已经被排序;

    ②. 取出下一个元素,在已经排序的元素序列中从后向前扫描;

    ③. 如果该元素(已排序)大于新元素,将该元素移到下一位置;

    ④. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;

    ⑤. 将新元素插入到该位置后

    ⑥. 重复步骤②~⑤

     

    3、代码实现

    原数组:10, 1, 9, 2, 8, 3, 7, 4, 6, 5

    第一次排序:1, 10, 9, 2, 8, 3, 7, 4, 6, 5

    第二次排序:1, 9, 10, 2, 8, 3, 7, 4, 6, 5

    第三次排序:1, 2, 9, 10, 8, 3, 7, 4, 6, 5

     

    public class InsertSort {
    
        public static void main(String[] args) {
            int[] array = new int[]{10, 1, 9, 2, 8, 3, 7, 4, 6, 5};
            insertSort(array);
        }
    
        /**
         * @param array
         */
        public static void insertSort(int[] array) {
            int len = array.length;
            for (int i=1; i<len; i++) {
                // 临时变量存储选择元素
                int temp = array[i];
                int j = i -1;
                while(j>=0 && temp < array[j]) {
                    array[j+1] = array[j];
                    j--;
                }
                j++;
                // 选择的元素放到该位置
                if (j != i) {
                    array[j] = temp;
                }
                System.out.println(Arrays.toString(array));
            }
        }
    }
    View Code
  • 相关阅读:
    PHP 小tip .(@)符号和 php if 赋值
    PHP定义字符串时单引号和双引号的区别
    笔记本 windows 10 安装
    unix_12c_db_init
    教你如何使用php session
    js和 php 介绍
    PHP 简单答题系统
    PHP list() 函数
    PHP集成支付宝快速实现充值功能
    eclipse如何导入PHP的项目
  • 原文地址:https://www.cnblogs.com/Latiny/p/10522229.html
Copyright © 2011-2022 走看看