平衡二叉树第一次是在大一下学期的数据结构上学的,记得当时自己看书上的算法描述,感觉云里雾里,各种旋转,总有种似懂非懂的样子,无奈当时的数据结构也就是那样似懂非懂地学过去了。时隔两年,转眼就大三下学期了,当我现在再次在《算法导论》上看红黑树遇到这个词的时候,不免感慨当时自己学数据结构时敲的代码实在是太 ...
分类:
其他好文 时间:
2018-01-19 22:23:32
阅读次数:
179
《别做正常的傻瓜》 《人人都是架构师》 《领域驱动设计和模式实践》 《JavaScript设计模式与开放实践》 《JavaScript正则表达式迷你书》 《大话设计模式》(第4遍阅读) 《算法导论》 缓存,数据库优化库表拆分,负债均衡,消息队列,elasticsearch,solr.lucene,n ...
分类:
其他好文 时间:
2018-01-15 17:32:59
阅读次数:
346
思路参考《算法导论》P110 另外,这位老哥讲的很不错:http://www.cnblogs.com/kkun/archive/2011/11/23/2260275.html 代码 运行结果如下: ...
分类:
编程语言 时间:
2018-01-14 16:50:23
阅读次数:
193
这个没啥好说的,写完上一个正好写一下这一个,都是基于堆实现的,不过这里没有用C++内置数组,原因是添加删除元素有点麻烦,所以用了vector来实现。 详细内容见《算法导论》P90 代码 运行结果如下: ...
分类:
其他好文 时间:
2018-01-13 23:50:06
阅读次数:
183
思路参考《算法导论》P95 这里有位老哥的文章写的挺形象的呀 http://developer.51cto.com/art/201403/430986.htm 我是参照书上实现的,觉得挺简单的 代码 运行结果: ...
分类:
编程语言 时间:
2018-01-13 23:47:57
阅读次数:
301
思路参考《算法导论》P84 堆排序中用到的最重要的就是堆这种数据结构,也正是因为这种数据结构能把时间复杂度控制在O(n * lgn) heapsort算法主要依赖于两个函数 MAX_HEAPIFY(int *A,int i,int len) 用于维护最大堆,时间复杂度为O(lgn),注意书上描述这个 ...
分类:
编程语言 时间:
2018-01-13 18:52:57
阅读次数:
205
昨晚本来在做化学...结果闲的没事开始读买来就没看过的《算法导论》...就这个专注度,看来期末又要挂科了 连读44页的酸爽...简单的看了一下算法时间复杂度的分析,毕竟不是很重要...(不只是我开玩笑的只是我不想看而已),O(nlgn) 所以莫名其妙地搞懂了归并排序和逆序对的计算...emmm果然还 ...
分类:
编程语言 时间:
2018-01-07 15:57:15
阅读次数:
162
/** * Merge_Sort: 归并排序的递归实现 * 注:算法导论上给出的合并排序算法 * 递归过程是将待排序集合一分为二, * 直至排序集合就剩下一个元素为止,然后不断的合并两个排好序的数组 * T(n) = O(nlgn)**/#include <stdio.h>#define LEN 8 ...
分类:
编程语言 时间:
2018-01-01 23:37:16
阅读次数:
185
2017-12-30 17:01:18 递归问题的时间复杂度分析广泛存在于分治法和DP中,根据算法导论的记载,可以使用主定理的公式直接计算。另外,这篇文章介绍一下使用迭代手算的过程。 主定理 迭代计算 有一点需要说明:2^k*T(n/2^k) = 2^k*T(1) := 2^k*O(1) = n*O ...
分类:
其他好文 时间:
2017-12-30 19:09:48
阅读次数:
139
钢材分段问题 上面代码中的 nums[] 中的数据代表的含义是指钢材长度从0~10不同长度的价格。 一般动态规划用于求解一类最优解(一般可归类为求解最大值或最小值)的问题,这里以《算法导论》给的这个例子为引子作为深入对算法等的学习。代码很简洁明了,所以我就不多解释了。 ...
分类:
其他好文 时间:
2017-12-28 21:30:13
阅读次数:
121