当前位置: 首页 > news >正文

排序算法-插入排序

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

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

插入排序代码 

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)));
    }
}

结果展示 

相关文章:

  • Tomcat深度解析:Java Web服务的核心引擎
  • Java 线程池与 Kotlin 协程 高阶学习
  • 子网划分2
  • OSPF五种数据包详解
  • FPGA实现LED流水灯
  • Leetcode 3500. Minimum Cost to Divide Array Into Subarrays
  • Spring IOC:容器管理与依赖注入秘籍
  • RK3568 pinctrl内容讲解
  • Python----机器学习(距离计算方式:欧式距离,曼哈顿距离,切比雪夫距离,余弦相似度,汉明距离,闵可夫斯基距离,Jaccard指数,半正矢距离)
  • 探索PHP的未来发展与应用趋势
  • Java面试黄金宝典27
  • transformer架构与其它架构对比
  • K8S学习之基础六十六:Rancher部署
  • Kafka延迟队列实现分级重试
  • 在eclipse中通过git放弃某个版本之前所有的更新
  • Cpp网络编程Winsock API
  • iOS 按键越狱脚本支持一键新机软件教程
  • TTL 值 | 在 IP 协议、ping 工具及 DNS 解析中的作用
  • git错误:fatal: detected dubious ownership in repository at xxxxxx
  • 基于Spring Boot的轻型卡车零部件销售平台的设计与实现(LW+源码+讲解)
  • 新加坡执政党人民行动党在2025年大选中获胜
  • 青海大学常务副校长(正厅级)任延明已任省卫健委党组书记
  • 即日起,“应急使命·2025”演习公开征集新质救援能力
  • 湖北鄂州通报4所小学学生呕吐腹泻:供餐企业负责人被采取强制措施
  • 媒体:酒店、民宿临时毁约涨价,怎么管?
  • 看见“看得见的手”,看见住房与土地——读《央地之间》