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

    将一个记录插入到已排好序的序列中,从而得到一个新的有序序列(将序列的第一个数据看成是一个有序的子序列,然后从第二个记录逐个向该有序的子序列进行有序的插入,直至整个序列有序)

    视为有两个集合,第一个集合只有一个元素,第二个集合是无序的,将无序集合中的元素一个一个插入第一个集合中,使其逐渐变得有序,当第二个集合移动到最后一个元素时,第一个集合变成有序集合,产生排序效果。

    package com.pangzi.stucture;
    
    import java.util.Arrays;
    
    public class InsertSort {
    
        public static void main(String[] args) {
            
            int[] arr = {101,34,119,1};
            insertSort(arr);
        }
    
        //插入排序
        public static void insertSort(int[] arr){
            //使用for循环
            for(int i = 1;i< arr.length;i++){
                int insertVal = arr[i];//从数组的第二个元素开始,与第一个有序元素进行比较
                int insertIndex = i-1;//即arr[1]前面这个数的索引下标
                
                while(insertIndex >= 0 && insertVal < arr[insertIndex]){//判断索引不越界,且插入的元素小于插入元素左边的元素
                    arr[insertIndex + 1] = arr[insertIndex];//将第一个元素向右移动1位,将arr[0]赋值给arr[1]
                    insertIndex--;//将arr[0]的索引减一,这时候insertIndex为-1
                }
                
                 arr[insertIndex + 1] = insertVal;//将待插入元素赋值给arr[-1+1],即arr[0]
                
            }

  • 相关阅读:
    SQL Server分页查询的万能存储过程
    前端相关及一些关键单词
    java shiro面试题
    java集合面试题
    芬芬购物系统基础配置2
    芬芬购物系统基础配置
    多线程安全
    多线程入门
    JAVA多线程
    java多线程
  • 原文地址:https://www.cnblogs.com/xiaoboxueit/p/13229737.html
Copyright © 2011-2022 走看看