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

排序算法简介

直接插入排序:

将第一个元素视为已排序的序列,其余元素视为未排序序列。 ‌

逐个处理‌:从第二个元素开始,逐个将当前元素插入到已排序序列的适当位置,直到所有元素都被插入。 ‌

插入过程‌:对于每个待插入的元素,通过与已排序序列中的元素进行比较,找到合适的插入位置,并将该位置及之后的元素向后移动,为新元素腾出空间。

直接选择排序:

在所有记录中选出最小的记录,把它与第1个记录交换,然后在剩余的记录内选出最小的记录与第2个交换......依次类推

冒泡排序:

第一个元素和第二个元素比较,第二元素和第三元素比较,第三和第四......,以此类推,一轮结束大的冒泡了。第二轮开始,还是从第一元素和第二元素开始比较。

希尔排序:

将待排序的数组分成若干个子序列,每个子序列使用插入排序进行排序,然后逐步减小增量,直到增量为1时完成整个数组的排序

快速排序:

采用分治策略,通过选取一个“基准”元素,将待排序的数组分为两个子数组,一个子数组的元素都比基准元素小,另一个子数组的元素都比基准元素大,然后对这两个子数组递归地进行快速排序,从而达到对整个数组排序的目的‌

堆排序:利用大小堆的数据结构

归并排序:

基于分治策略,从中间划分成左右数组,左右数组再划分直到1个元素,然后划分的元素排序好,再原路返回的合并


http://www.kler.cn/a/387041.html

相关文章:

  • JVM 中的完整 GC 流程
  • MFC工控项目实例二十九主对话框调用子对话框设定参数值
  • 基于碎纸片的拼接复原算法及MATLAB实现
  • 山泽光纤HDMI线:铜线的隐藏力量
  • 前端请求后端php接口跨域 cors问题
  • Android Studio 将项目打包成apk文件
  • 数据库的使用05:不规范的写法与操作记录
  • VR的左右眼渲染方法
  • 如何使用 Python 语言的正则表达式进行网页数据的爬取?
  • OpenCV进阶
  • .Net Core 6.0 WebApi在Centos中部署
  • bug日常记录responded with a status of 413 (Request Entity Too Large)
  • 【redis】延迟双删策略
  • k8s笔记——核心概念
  • Axure PR 9 多级下拉选择器 设计交互
  • qt QTextFrame详解
  • 高级java每日一道面试题-2024年10月28日-RabbitMQ篇-RabbitMQ的使用场景有哪些?
  • react-copy-to-clipboard: 一个简单的 React 用于复制文本到剪贴板的组件
  • 深度学习基础—了解词嵌入
  • 《Elasticsearch 实战应用》
  • 【数据仓库】Hive 拉链表实践
  • 汽车共享行业:SpringBoot管理系统革命
  • 深入浅出WebSocket(实践聊天室demo)
  • 掌握鸿蒙生态的崛起之机:开发者的挑战与机遇
  • 递推经典例题 - 爬楼梯
  • 微服务系列五:避免雪崩问题的限流、隔离、熔断措施