数据结构与算法
文章平均质量分 94
勇敢滴勇
【易编橙·终身成长社群】特邀嘉宾。一年工作经验,从事C++相关开发工作,分享日常笔记。
展开
-
【排序算法】选择排序、堆排序
堆排序是一种基于堆(Heap)数据结构的排序算法。最大堆:每个节点的值都大于或等于其子节点的值。根节点是最大值。最小堆:每个节点的值都小于或等于其子节点的值。根节点是最小值。首先将无序数组构建为一个最大堆。然后,将堆顶(即最大值)与数组的最后一个元素交换,缩小堆的范围,对剩下的元素继续调整成最大堆,直到排序完成。原创 2024-09-25 20:32:51 · 1450 阅读 · 87 评论 -
【排序算法】插入排序_直接插入排序、希尔排序
它的工作原理类似于我们整理扑克牌的过程:一开始我们手里没有任何牌,每次从桌上取一张牌,将其插入到手中已排好序的牌中,直到手中所有的牌都排好序。● 空间复杂度:O(1),只需要一个额外的变量 key 来存储待插入的元素,因此插入排序的空间复杂度是常数级的。● 稳定性:插入排序是一个稳定的排序算法,意味着如果两个元素相等,它们的相对顺序不会在排序过程中改变。○ 最坏情况:O(n²),当数组是反序的,插入每个元素时都要遍历已排序部分的所有元素。插入排序通过不断将元素插入到已排序部分的合适位置,逐步形成有序数组。原创 2024-09-22 16:43:46 · 1137 阅读 · 95 评论