排序算法-插入排序(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.如果遇到比这个元素小的数,就把之前比这个元素大的数想前移动一位,然后把这个元素插入到这个比他小的数的前面
相关推荐
Jasmineyaoyao 2020-06-16
Joymine 2020-06-16
清溪算法君老号 2020-06-06
清溪算法君老号 2020-06-01
shenwenjie 2020-04-25
星辰大海的路上 2020-04-22
bluewelkin 2020-04-21
chenfei0 2020-04-15
hanyujianke 2020-03-03
Colourful 2020-02-29
dushine00 2020-02-17
Happyunlimited 2020-02-17
shawsun 2020-02-12
pimshell 2020-02-03
hugebawu 2020-01-15
dbhllnr 2020-01-10