排序算法
filanlu
cpp
展开
-
排序算法 C++如何实现快速排序
基本思路 身高排队为例:找一个人为基准,比他高的站右边,比他矮的站左边。 左边一队和右边一队,再重复以上操作,直到划分队伍剩下一个人即不需要排序的状态。原创 2020-08-11 15:33:59 · 320 阅读 · 0 评论 -
排序算法 C++如何实现归并排序
归并排序一般指2-路归并排序。基本思想如下: 第一个问题: 1、假设待排序列由两段有序的左右子序列拼接而成 2、那么只需要一个额外空间当辅助空间,从左段和右段的第1开始比较,小的放到额外空间的低位。一直到两段排完 第二个问题: 1、如何让这两段序列有序? 2、试想如果序列长度为2,那么可看成是左右两段有序子序列。 3、那么只需要将长度为n的看成n个有序的子序列。 4、每个子序列用第一个问题的思想两两拼接成一段长度为2的序列 5、拼接好的序列再一次拼接,直到最后最后排完。原创 2020-07-30 23:09:37 · 330 阅读 · 0 评论 -
排序算法 C++如何实现堆排序
堆排序基本思路 1、理解堆的特点,父节点总是大于(在总是小于)孩子节点。 父节点总是大于孩子节点的完全二叉树称为大根堆。 父节点总是小于孩子节点的完全二叉树称为小根堆。 2、每次把堆的最上面的值拿出来,再调整余下节点为新的堆。 3、拿n-1次后则完成排序。原创 2020-08-07 02:13:24 · 195 阅读 · 1 评论