随笔分类 -  算法导论学习

对《算法导论》一书中的一些补充和注解
排序算法性能
摘要:稳定:如果 a 原本在 b 前面,而 a = b,排序之后 a 仍然在 b 前面。 不稳定:如果 a 原本在 b 前面,而 a = b,排序之后 a 可能会出现在 b 后面。 各种算法的性能比较: 阅读全文

posted @ 2020-04-16 19:43 Black_x 阅读(119) 评论(0) 推荐(0) 编辑

算法导论 - 分治策略 - 常见递归式复杂度
摘要:随时更新补充常见分治算法的时间复杂度: 阅读全文

posted @ 2020-04-16 11:20 Black_x 阅读(136) 评论(0) 推荐(0) 编辑

程序时间记录
摘要:用clock函数,库<ctime>。 记录时间的数据类型为clock_t。 1 int main() 2 { 3 clock_t start, end; 4 start = clock(); // 计时开始 5 6 vector<int> ar; 7 for (int i = 30; i >= 0; 阅读全文

posted @ 2020-04-15 16:27 Black_x 阅读(158) 评论(0) 推荐(0) 编辑

希尔排序
摘要:插入排序的小优化,算法性能不稳定,其时间复杂度Ω(nlgn) - O(n^2)。 但这原理咋就折磨难理解内。 希尔排序采用“分组”的思想,按照区间的步长将数组分为不同的组。举个例子,按步长3将区间分组,其序号分别为3n,3n+1,3n+2。(n从0开始)然后在每一个组里都使用插入排序,称其为一趟操作 阅读全文

posted @ 2020-04-15 15:31 Black_x 阅读(183) 评论(0) 推荐(0) 编辑

算法导论 - 基础知识 - 算法基础(插入排序&归并排序)
摘要:在《算法导论》一书中,插入排序作为一个例子是第一个出现在该书中的算法。 插入排序: 对于少量元素的排序,它是一个有效的算法。 插入排序的工作方式像许多人排序一手扑克牌。开始时,我们手中牌为空,我们每次从牌堆中取出一张牌并将其放入正确的位置。为了找到一张牌的正确位置,我们从左到右将它与手中已有的每张牌 阅读全文

posted @ 2020-03-08 01:47 Black_x 阅读(373) 评论(0) 推荐(0) 编辑

算法导论 - 基础知识 - 函数的增长
摘要:各种语句和模块分析应遵循的规则: (1)赋值语句和读写语句:运行时间取 O(1)。有函数调用的除外,此时要考虑函数的执行时间。 (2)顺序执行语句:运行时间有加法规则确定,即该序列中耗时最多的语句的执行时间。 (3)条件分支语句:运行时间有条件测试(通常为 O(1))加上分支中运行时间最长的语句的运 阅读全文

posted @ 2020-02-29 01:02 Black_x 阅读(257) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示