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

排序算法-插入排序

属性

        当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与array[i1],array[i-2],…的排序码顺序进行比较,找到插入位置即将array[i]插入,原来位置上的元素顺序后移

        直接插入排序的特性总结: 1. 元素集合越接近有序,直接插入排序算法的时间效率越高 2. 时间复杂度:O(N^2) 3. 空间复杂度:O(1),它是一种稳定的排序算法 4. 稳定性:稳定

代码及其注释

        

public class InsertSort {// 插入排序public static void insertSort(int[]arr){//首先比较第一个元素和第二个元素之间的大小关系,所以i从1开始for(int i=1;i<arr.length;i++){//将要进行比较的数放到一个临时变量中,此时就相当于i位置现在是空的int tmp=arr[i];//遍历i前面的数据,与temp中的数据进行比较int j=i-1;for(;j>=0;j--){//要是i前面的数据比i的数据大,就说明该数据应该在i数据之前,就将该数据向前移if(arr[j]>tmp){arr[j+1]=arr[j];}//i前面的数据比i的数据小了,找到了合适的位置,就退出循环并将i的数据放到当前遍历到的j数据之前else {break;}}//这里有特殊情况,当i前面的数据都比i大时,j的取值会一直取到-1,退出循环,此时就需要将i的值放到0的位置arr[j+1]=tmp;}}
}

http://www.lryc.cn/news/169456.html

相关文章:

  • 多位数按键操作(闪烁)数码管显示
  • MyEclipse项目导入与导出
  • ArrayList和LinkedList
  • Linux 配置 Nginx 服务完整详细版
  • Python实现猎人猎物优化算法(HPO)优化LightGBM回归模型(LGBMRegressor算法)项目实战
  • 无涯教程-JavaScript - ODD函数
  • Easyui里的datagrid嵌入select下拉框
  • 计算机专业毕业设计项目推荐03-Wiki系统设计与实现(JavaSpring+Vue+Mysql)
  • 微服务的艺术:构建可扩展和弹性的分布式应用
  • 在PHP8中对数组进行排序-PHP8知识详解
  • Redis混合模式持久化原理
  • 《BPF Performance Tools —— 洞悉Linux系统和应用性能》学习笔记 —— 第一章 介绍(2)
  • 【计算机网络】网络编程接口 Socket API 解读(7)
  • crypto++下载、安装(VS2017)及加解密使用
  • R语言画图
  • redis 核心数据结构
  • RabbitMQ消息可靠性(一)-- 生产者消息确认
  • 9 种方法使用 Amazon CodeWhisperer 快速构建应用
  • 性能测试-性能工程落地的4个阶段(21)
  • 小程序 navigateBack 携带参数返回的三种方式(详细)
  • 通过内网穿透实现远程连接群晖Drive,轻松实现异地访问群晖NAS
  • vue3 + vite常用工具
  • Vue框架分享与总结
  • 声音生成评价指标——使用声音分类模型评价生成声音质量(基于resnetish、VGGish、AlexNet)
  • HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 六)
  • SPA首屏加载速度慢
  • JVM执行流程
  • laravel 凌晨0点 导出数据库
  • mysql MVCC多版本并发控制
  • new/delete, malloc/free 内存泄漏如何检测