Java排序算法(三):插入排序

传送门:Java排序算法汇总篇,八种排序算法

插入排序思想

插入排序的基本思想是: 把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,在有序表中从后往前进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。

代码实现

复制代码
public class InsertSort1 {
    public static void main(String[] args) {
        int[] data = {1,1,2,8,4,2,1,6,4,8,6,9,2,1};
        sort(data);
        System.out.println(Arrays.toString(data));
    }

    public static void sort(int[] array){
        for (int i = 1; i < array.length; i++) {
            //temp取当前要插入的值
            int temp = array[i];
            //遍历temp前的值 大于temp就后移
            for (int j = i-1; j >=0; j--) {
                if(array[j]>temp){
                    //右移
                    array[j+1]=array[j];
                    array[j]=temp;
                }else {
                    break;
                }
            }
        }
    }
}
相关推荐
timi先生8 分钟前
语料库全栈项目部署 (Vue + Java + CQPweb)
java·前端·vue.js
迈巴赫车主24 分钟前
求最大公约数-欧几里得算法(辗转相除法)
算法·最大公约数
sunwenjian88627 分钟前
Java进阶--IO流
java·开发语言
lxl130737 分钟前
C++算法(15)BFS_FloodFill
算法·宽度优先
小王C语言40 分钟前
【基础IO】————简单设计一下libc库
前端·数据结构·算法
亦复何言??41 分钟前
BeyondMimic 论文解析
人工智能·算法·机器人
WolfGang0073211 小时前
代码随想录算法训练营 Day20 | 回溯算法 part02
算法
YXXY3131 小时前
前缀和算法
算法
客卿1231 小时前
滑动窗口--模板
java·算法
_日拱一卒1 小时前
LeetCode:滑动窗口的最大值
数据结构·算法·leetcode