排序算法-插入排序

插入排序的思路
基本思路步骤:

初始状态: 将数组分为已排序部分和未排序部分。初始时,已排序部分只包含第一个元素,而未排序部分包含其余的元素。
逐步构建有序序列: 从未排序部分取出第一个元素,将其插入到已排序部分的正确位置,使得已排序部分仍然保持有序。
比较并移动: 将取出的元素与已排序部分的元素逐一比较,找到其正确的插入位置。为了插入,可能需要将比它大的元素依次向右移动,为新元素腾出插入的位置。
重复步骤 2-3: 重复以上步骤,每次取出未排序部分的一个元素,插入到已排序部分的正确位置。这样,已排序部分逐渐增加,未排序部分逐渐减小。
**直到排序完成:**重复上述过程,直到未排序部分为空,整个数组就被排序完成了。

插入排序代码

java 复制代码
public class Sort {
    //3.插入排序
    public static int[] inserSort(int... array){
        int i,j;
        for(i=1;i< array.length;i++){
            if(array[i]>=array[i-1]){
                continue;
            }
            int t=array[i];
            //
            for(j=i-1;j>=0&&array[j]>t;j--){
                array[j+1]=array[j];
            }
            array[j+1]=t;
        }
        return array;
    }

    public static void main(String[] args) {
        int[] a={94,54,52,36,17,4,9};
        System.out.println(Arrays.toString(inserSort(a)));
    }
}

结果展示

相关推荐
residual_fan6 分钟前
经验模态重构:直向工业时间序列数据的数据扩增方法
人工智能·算法·重构·数据挖掘·数据分析
aramae27 分钟前
模拟实现strcpy(字符串拷贝)(C语言)
java·c语言·开发语言·算法
Benny_Tang31 分钟前
「雅礼集训 2018 Day7」A 题解
数据结构·c++·算法
Doubbbbbbble云41 分钟前
跳表结构在高并发系统中的应用与优势分析4
算法
TAN-90°-43 分钟前
Deep Learning for Computer Vision——Large Scale Distributed Training
人工智能·深度学习·神经网络·算法·机器学习·计算机视觉·语言模型
Lyyaoo.1 小时前
【回溯】【中等】全排列
java·数据结构·算法
写后端的胖头鱼1 小时前
一文讲懂JVM与调优
jvm·后端·算法·架构·jvm调优
土司大王1 小时前
LeetCode 79 单词搜索:Java 回溯模板、网格 DFS 与剪枝优化
java·算法·leetcode·深度优先
ECT-OS-JiuHuaShan1 小时前
哲学是迭代学,数学是拓扑学
开发语言·人工智能·学习·算法·机器学习·php·拓扑学
All for pursuit.1 小时前
【数组-5】560.和为K的子数组
数据结构·c++·算法·leetcode