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

各种排序算法的再整理

各种排序算法的再整理

插入排序:就是创建一个有序序列,然后将每个数插进去n2

折半插入:就是创建一个有序序列,然后每次折半的寻找这个插入位置n2(因为找到之后,还是要从那个位置移动数组)最好情况on

希尔排序:根据增量进行排序,增量是多少就有几个组,然后先将这组利用插入排序排好,然后增量/2并向下取整复杂度:on1.3(平均)

最好:on 最坏:on2

不稳定

冒泡排序:每轮从后往前以此比较相邻两个,逆序交换

快速排序:每次找到一个枢纽,利用左右指针来寻找比枢纽小和大的元素,分别放左边和放右边(具体方法为初始有左空位,然后从r开始减少,直到遇到比枢纽值小的数,然后放入l指针位置,反过来执行,直到指针重合,放入枢纽),然后递归完成左右区间排序。

稳定

简单选择排序:每轮选最小的

堆排序:复杂度为on+nlogn

先进行建堆,从非叶子结点开始,看是否大于左右子节点,如果均小于不变,反之调整,将大的子节点与小的父节点交换,调整后要再次检查调整的子节点;

然后进行排序,排序是每次将堆顶与目前数组长度的最后一个节点交换,交换后重复如上调整,同时需要维护数组长度-1;

归并排序:我们进行logn轮的归并操作,将n个单独的子序列,不断翻倍的进行归并。

两个子序列进行归并的方式就是:双指针,选出当前更小的节点,共n次。

基数排序:每轮对一位进行排序

稳定

最大位数*(要排的数个数+桶数)

http://www.lqws.cn/news/145117.html

相关文章:

  • 新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
  • Java转Go日记(六十):gin其他常用知识
  • Angular报错:cann‘t bind to ngClass since it is‘t a known property of div
  • 电路图识图基础知识-自耦变压器降压启动电动机控制电路(十六)
  • 洛谷题目:P2761 软件补丁问题 (本题简单)
  • SD系列I/O接口cRBX01 2VAA008424R1
  • JavaSec-SSTI - 模板引擎注入
  • 深度学习学习率优化方法——pytorch中各类warm up策略
  • 桂花网蓝牙网关物联网医院动态血糖管理应用案例
  • Vue.js 组件:深入理解与实践
  • Spring Boot缓存组件Ehcache、Caffeine、Redis、Hazelcast
  • 使用 C/C++ 和 OpenCV 添加图片水印
  • Android协程学习
  • 负载均衡将https请求转发后端http服务报错:The plain HTTP request was sent to HTTPS port
  • 模块化架构下的前端调试体系建设:WebDebugX 与多工具协同的工程实践
  • 【图像处理3D】:焦距的像素单位标定
  • 深入浅出 Scrapy:打造高效、强大的 Python 网络爬虫
  • Xcode 16.4 + iOS 18 系统运行时崩溃:___cxa_current_primary_exception 符号丢失的原因与解决方案
  • 基于cornerstone3D的dicom影像浏览器 第二十八章 LabelTool文字标记,L标记,R标记及标记样式设置
  • AMFCNN-RKD:齿轮故障诊断的轻量级多传感器融合模型详解(python代码复现)
  • STM32 NVIC中断控制器
  • 鸿蒙APP测试实战:从HDC命令到专项测试
  • XHR / Fetch / Axios 请求的取消请求与请求重试
  • 【Linux】网络--数据链路层--以太网
  • 4.2 HarmonyOS NEXT分布式AI应用实践:联邦学习、跨设备协作与个性化推荐实战
  • Elasticsearch:spring2.x集成elasticsearch8.x
  • CB/T 3361-2019 甲板敷料检测
  • HarmonyOS:Counter计数器组件
  • 免费工具-微软Bing Video Creator
  • 塑料回收新突破!Nature 重磅:2 小时解聚碳纤维废料