算法导论
路一直都在在在
记录自己的学习之旅
展开
-
排序算法之----堆排序
排序算法之----堆排序参考来源 一、预备知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlgn),它也是不稳定排序。与归并排序一样,但不同于插入排序的是,堆排序的时间复杂度是O(nlgn)。而与插入排序相同,但不同于归并排序的是,堆排序同样具有空间原址性:任何时候都只需要常数个额外的元素空间存储临时数据。首先简单了解下堆...转载 2019-05-11 15:16:51 · 144 阅读 · 0 评论 -
排序算法之----归并排序
排序算法之----归并排序参考来源 一、基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 分而治之 可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实...转载 2019-05-11 16:51:19 · 359 阅读 · 0 评论 -
排序算法之----插入排序
排序算法之----插入排序参考来源 插入排序原理很简单,将一组数据分成两组,我分别将其称为有序组与待插入组。每次从待插入组中取出一个元素,与有序组的元素进行比较,并找到合适的位置,将该元素插到有序组当中。就这样,每次插入一个元素,有序组增加,待插入组减少。直到待插入组元素个数为0。当然,插入过程中涉及到了元素的移动。 为了排序方便,我们一般将数据第一个元素视为有序组,其他均为待插入组。 下面以升序...转载 2019-05-11 17:29:42 · 132 阅读 · 0 评论