zoukankan      html  css  js  c++  java
  • 排序算法-插入排序(Java)

    package com.rao.linkList;

    import java.util.Arrays;

    /**
    * @author Srao
    * @className InsertSort
    * @date 2019/12/4 12:02
    * @package com.rao.linkList
    * @Description 插入排序
    */
    public class InsertSort {

    /**
    * 插入排序
    * @param arr
    */
    public static void insertSort(int[] arr){
    for (int i = 1; i < arr.length; i++){

    //先把要插入的数保存下来
    int temp = arr[i];

    int k = i-1;

    //找到第一个比它小的数的下标
    while (k >=0 && arr[k] > temp){
    k--;
    }

    //把较小的元素之前的元素全部后移一位,为要插入的元素空出一个位置
    for (int j = i; j > k+1; j--){
    arr[j] = arr[j-1];
    }

    //插入这个元素到第一个比它小的元素的前面
    arr[k+1] = temp;
    }
    }

    public static void main(String[] args) {
    int[] arr = new int[]{3,6,2,5,9,1,0,8};
    System.out.println(Arrays.toString(arr));
    insertSort(arr);
    System.out.println(Arrays.toString(arr));

    }
    }

    1.从数组的第二个元素开始遍历,向数组的头开始找

    2.如果遇到比这个元素大的数,就继续向前找

    3.如果遇到比这个元素小的数,就把之前比这个元素大的数想前移动一位,然后把这个元素插入到这个比他小的数的前面

  • 相关阅读:
    体验一下:AndroidX
    Android研发技术的进阶之路
    App 冷启动与热启动及启动白屏优化
    Android Q 正式命名为 Android 10
    Android开发学习路线的七个阶段和步骤
    安卓旅途之——开发数独(一)
    项目总结
    小组互评与自评
    典型用户与场景
    第二个Sprint计划
  • 原文地址:https://www.cnblogs.com/rao11/p/11982172.html
Copyright © 2011-2022 走看看