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;
                }
            }
        }
    }
}
相关推荐
vx:Oct-w771 小时前
毕业设计----用python制作的古诗词拼接接龙游戏
数据结构·python·sql·算法·游戏·pycharm
乐观的Terry2 小时前
分布式链路追踪MDC+TraceId
java·分布式
Kris_LinSD2 小时前
算法小实验——分治算法二分搜索(含报告)
c语言·算法
alonewolf_992 小时前
Spring Bean生命周期源码深度解析
java·后端·spring
老毛肚3 小时前
身份证识别 -
java
毕设源码-郭学长3 小时前
【开题答辩全过程】以 个性化小视频推荐系统的设计与实现为例,包含答辩的问题和答案
java
Slow菜鸟3 小时前
Kiro 学习指南
java·开发语言
取加若则_6 小时前
Linux进程调度:双队列高效管理
linux·算法
Tisfy8 小时前
LeetCode 961.在长度 2N 的数组中找出重复 N 次的元素:5种语言x5种方法(及其变种) —— All By Hand
数据结构·数学·算法·leetcode·题解
小O的算法实验室8 小时前
2024年ESWA SCI1区TOP,容错文化概率粒子群算法+多 AGV 路径规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进