当前位置: 首页 > 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)));
    }
}

结果展示 

http://www.dtcms.com/a/105969.html

相关文章:

  • 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+源码+讲解)
  • Python:爬虫概念与分类
  • [Effective C++]条款26:尽可能延后变量定义的出现时间
  • 【Java虚拟机】JVM
  • Mac 设置静态IP的方法 和 Mac 设置静态IP后 无法联网
  • AI学习记录-QWQ32b太强了
  • 网站改版html页面 NGINX 借用伪静态和PHP脚本 实现301重定向跳转
  • Vue3服务端渲染深度解析:从Nuxt3架构到性能优化实战
  • 音视频开发从入门到精通:编解码、流媒体协议与FFmpeg实战指南
  • ctfshow——web入门176~180
  • Redis-17.在Java中操作Redis-Spring Data Redis使用方式-通用操作