摘要: 思路(大根堆): 部分堆排序: 从某根节点开始,看左右孩子的值是否大于根节点。 若根节点不为最大值,找到左右孩子的最大值和根节点交换。 交换后破坏了下一级堆,则需要对下一级堆继续用以上方法排序。 建立堆: 从最后一个节点开始,找到父节点,从父节点遍历到根节点,用堆排序,最后就建立一个排好序的堆。 空 阅读全文
posted @ 2020-07-09 22:58 Maxwell· 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 思路: 对某一个元素,假设该元素前面都已经有序,元素后面元素都无序。 找到恰小于等于该元素的位置后插入该元素,同时此时该元素位置到之前该元素之间的元素位置都后移。 空间复杂度:O(1) 时间复杂度:O(n²) 是稳定的排序方法 #include <iostream> #include <stdlib 阅读全文
posted @ 2020-07-09 19:28 Maxwell· 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 步骤:1.根据步长将数组分为若干组,然后步长减半 2.组内进行直接插入排序 直到步长为0时停止 空间复杂度:O(1) 时间复杂度:O(n²) (最坏情况下) 是不稳定的排序方法 #include <iostream> #include <stdlib.h> #include <math.h> #in 阅读全文
posted @ 2020-07-09 19:13 Maxwell· 阅读(190) 评论(0) 推荐(0) 编辑