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;
                }
            }
        }
    }
}
相关推荐
我是无敌小恐龙2 分钟前
Java SE 零基础入门 Day02 运算符与流程控制超详细笔记
java·数据结构·spring boot·笔记·python·spring·spring cloud
invicinble5 分钟前
对于代码阅读能力的思考和总结
java
jrlong5 分钟前
HelloAgents 进阶篇 task03
java·前端·python
talen_hx29610 分钟前
飞书机器人发文本消息
java·前端·飞书
pearlthriving10 分钟前
STL容器及其底层
开发语言·c++·算法
2601_9498165812 分钟前
Spring Boot--@PathVariable、@RequestParam、@RequestBody
java·spring boot·后端
念越12 分钟前
算法每日一题 Day04|快慢双指针法解决环形链表问题
数据结构·算法·链表
张人玉14 分钟前
VisionPro 药物检测工具 学习笔记
算法·c#·机器视觉·vsionpro
_深海凉_16 分钟前
LeetCode热题100-前 K 个高频元素
算法·leetcode·职场和发展
沐风。5617 分钟前
python
java·服务器·python