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;
                }
            }
        }
    }
}
相关推荐
一条大祥脚4 小时前
ABC461 枚举|扫描线|动态前缀和|数论|dfs枚举子集
算法·深度优先
计算机安禾4 小时前
【数据库系统原理】第14篇:关系模式的语义约束:函数依赖的公理系统与闭包计算
人工智能·算法·机器学习
我登哥MVP4 小时前
Spring Boot 从“会用”到“精通”:ReturnValueHandler原理
java·spring boot·后端·spring·java-ee·maven·intellij-idea
量化君也4 小时前
快速入门量化交易都要学些什么?
大数据·人工智能·python·算法·金融
snow@li4 小时前
数据库:MySQL vs PostgreSQL 详尽对比(2026版)
java·mysql·postgresql
丑过三八线4 小时前
Runc 深度解析:从原理到实操
java·linux·开发语言·docker·容器·rpc
STDD4 小时前
ntfy 自托管推送通知服务搭建:一条 curl 命令向手机发送通知
java·开发语言·智能手机
AbandonForce4 小时前
滑动窗口:定长滑动窗口与不定长滑动窗口
数据结构·c++·算法
周末也要写八哥4 小时前
线程的生命周期之线程睡眠
java·开发语言·jvm
炸薯条!4 小时前
二叉树的链式表示(2)
java·数据结构·算法