码迷,mamicode.com
首页 > 编程语言 > 详细

排序算法-插入排序(Java)

时间:2019-12-04 13:31:49      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:arrays   sys   位置   int   下标   script   insert   ati   --   

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.如果遇到比这个元素小的数,就把之前比这个元素大的数想前移动一位,然后把这个元素插入到这个比他小的数的前面

排序算法-插入排序(Java)

标签:arrays   sys   位置   int   下标   script   insert   ati   --   

原文地址:https://www.cnblogs.com/rao11/p/11982172.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!