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

class 029 重要排序算法的总结

这篇文章是看了“左程云”老师在b站上的讲解之后写的, 自己感觉已经能理解了, 所以就将整个过程写下来了。

这个是“左程云”老师个人空间的b站的链接, 数据结构与算法讲的很好很好, 希望大家可以多多支持左程云老师, 真心推荐.
https://space.bilibili.com/8888480?spm_id_from=333.999.0.0

在这里插入图片描述

1. 常见排序算法的稳定性

稳定性:能不能在拍完序之后, 让相同的值保持原来的次序.

比如:arr[] = {3, 4, 2, 3, 1}, 排序之后一定是:1, 2, 3, 3, 4, 但是在原来的数组中, 第一个数字 3 的下标是:0, 第二个 3 的下标是:3, 那排序之后, 0位置下标的 3 能不能在 3位置的下标 3 之前, 要是能, 说明这个排序算法具有稳定性, 要是没有, 说明这个算法没有稳定性.

每一个排序的稳定性, 左程云老师在视频中说的非常非常清楚, 也是将每一个排序的过程串了一遍, 自己要是忘了, 可以去以前的帖子中找一下过程, 然后自己分析一遍.

上图中已经将所有比较重要的排序算法的时间复杂度, 空间复杂度和稳定性进行了总结.

2. 常见排序算法的总结

冒泡排序, 选择排序, 插入排序中, 最差的是选择排序, 因为付出了 O(n^2) 的时间复杂度, 也没有稳定性.

归并排序, 随机快速排序, 堆排序中, 最需要注意的是随机快速排序, 因为随机快速排序的时间复杂度是根据期望确定的, 不能用最差和最好的情况进行确定, 这一点在以前随机快排的帖子中有详细的说明.

在这里插入图片描述


http://www.kler.cn/news/336098.html

相关文章:

  • 数据分布过于集中 怎么办,python 人工智能 ,数据分析,机器学习pytorch tensorflow ,
  • 【C++】二叉搜索树+变身 = 红黑树
  • Python的几个高级特性
  • 谷粒商城のRabbitMQ基础篇
  • 制作离线版Koczkatamas工具包
  • 洛谷 P11045 [蓝桥杯 2024 省 Java B] 最优分组
  • Linux 系统 nvm 管理node无法使用
  • python爬虫 - 初识requests模块
  • 民锋金融:稳健发展的战略与未来展望
  • 代码随想录Day 62|Floyd 算法精讲、A \* 算法精讲 (A star算法),题目:97. 小明逛公园、127. 骑士的攻击
  • 关于BSV区块链覆盖网络的常见问题解答(下篇)
  • CRM如何和ERP融合,才能打破信息孤岛效应。
  • vite学习教程05、vite+vue2构建本地 SVG 图标
  • 基于SSM的出租车租赁管理系统的设计与实现
  • OpenGL ES 着色器(5)
  • 一款完全开源并免费的监测与分析系统,支持监测,预警,分析,报告,支持本地化部署(附源码)
  • Golang | Leetcode Golang题解之第458题可怜的小猪
  • P1387 最大正方形
  • Leetcode——数组:二分搜索法704.二分查找相似题目
  • 自动驾驶-问题笔记-待解决