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;
                }
            }
        }
    }
}
相关推荐
若亦_几秒前
排序>>选择排序
数据结构·算法·排序算法
码智社1 分钟前
Redis生产环境高频踩坑总结(Java后端视角)
java·数据库·redis
重生之小比特5 分钟前
【算法拾光】前缀和|一维前缀和 + 二维前缀和
数据结构·算法
江苏汉软7 分钟前
制造企业为什么需要MES
java·数据库·制造·mes系统·mes软件
deviant-ART15 分钟前
java注解简写规则
java·后端
邪修king20 分钟前
Re:Linux系统篇(三十八):进程间通信ChapterSystem V 信号量深度解析|同步互斥、内核源码、C 指针多态、实战代码
java·linux·c语言
文丑颜不良啊21 分钟前
LeetCode1181~1200题目解析
java·leetcode
释厄62324 分钟前
矢量词汇向下不向上公理即词汇归位定律——肤浅即表面
java·人工智能·算法·去中心化·1024程序员节
海绵宝宝转agent30 分钟前
Leetcode100+面经
java·笔记·学习·算法·leetcode·深度优先
会编程的吕洞宾33 分钟前
Spring Boot 镜像瘦身实战:从 450MB 瘦到 180MB
java·后端·spring