算法
智享AI
爱生活,爱运动,爱学习,爱编程
展开
-
算法导论学习笔记 第6章 堆排序
在本章中介绍了另一种排序算法:堆排序(heapsort)。与归排序一样,但不同于插入排序的是,堆排序的时间复杂度式(Onlgn)。而与插入排序相同,但不同于归并排序的是,堆排序同样具有空间原址性(我理解的意思是可以实现就地排序):任何时候都只需要常数个额外的元素空间存储临时数据。因此,堆排序是集合了归并排序和插入排序两种排序算法有点的一种排序算法。 6.1 堆 堆的定义如下:n个元素的原创 2015-03-13 23:40:53 · 1162 阅读 · 0 评论 -
算法导论学习笔记 6.5 优先队列
优先队列(priority queue)是一种用来维护由一组元素构成的集合S的数据结构,其中的每一个元素都有一个相关的值,称为关键字(key)。一个最大优先队列支持一下操作: INSERT(S, x):把元素x插入集合S中。 MAXIMUM(S):返回S中具有最大关键字的集合。 EXTRACT-MAX(S):去掉并返回S中的具有最大关键字的元素。 INCREASE-KEY(原创 2015-03-17 21:43:47 · 1018 阅读 · 0 评论 -
算法导论读书笔记 第4章 分治策略
在第2张中,归并排序算法使用了分治策略。即在分治策略中,递归地求解一个问题,在每层递归中应包含三个步骤: 分解(Divide)步骤将问题画分为一些子问题,子问题的形式与原问题一样,只是规模更小。 解决(Conquer)步骤递归地求解出子问题。如果子问题的规模足够小,则停止递归,直接求解。 合并(Combine)步骤将子问题的解组合成原问题的解。 当子问题足够大时,需要递归求原创 2015-03-11 21:53:20 · 1081 阅读 · 0 评论 -
算法导论学习笔记 第7章 快速排序
对于包含n个数的输入数组来说,快速排序是一种时间复杂度为O(n^2)的排序算法。虽然最环情况的复杂度高,但是快速排序通常是实际应用排序中最好的选择,因为快排的平均性能非常好:它的期望复杂度是O(nlgn),而且O(nlgn)中的常数因子非常小。另外,快速排序还可以实现原址排序,甚至在虚拟环境中也能很好的工作。1 快速排序的描述 与归并排序一样,快速排序也使用了分治法的思想,下面是对一个典原创 2015-05-26 16:48:11 · 796 阅读 · 0 评论 -
算法导论学习笔记 第2章 算法基础
本章介绍了一个贯穿本书的框架,后续的算法设计都是在这个框架中进行的。原创 2015-03-10 21:18:55 · 832 阅读 · 0 评论