随笔分类 -  网摘

简单随笔
顺序统计与中值
摘要:问题:已知n个未排序的数,求找出其中第k小的数,即排名第k的数。(k<n)最简单的方法:将n个数排序,然后返回A[k]。但已经证明常见的排序算法(比如快排等)最快也就是O(nlogn)。那么我们可以做的更好,比如在线性时间O(n)里解决该问题吗?这种问题是比较常见的,比如要找出最大的数,最小的数,以及中位数等等,现在我们尝试在线性时间内找出中位数随机的分治算法该方法非常类似于随机化快速排序,其分析过程也跟随机化快速排序类似//随机产生一个从low到high之间的数 int random(int low,int high){ srand((unsigned)time(NULL)); ... 阅读全文

posted @ 2012-07-09 01:30 len_sround 阅读(408) 评论(0) 推荐(0)

线性时间排序
摘要:证明:所有基于比较模型(comparison model 通过比较两个元素的大小以确定元素的位置)的排序算法的运算速度不会快于O(nlogn)比如快速排序(nlogn),堆排序(nlogn),归并排序(nlogn),插入排序(n2)……等等,都是基于比较模型为了证明该结论,引入决策树这个工具例如,假设要排序三个元素,a,b,c , 构造的决策树如下所示 a > b? / \ b>c? a>c? / \ / \ a,b,c a>c? b,a,c b>c? / \ / \ ... 阅读全文

posted @ 2012-07-08 14:34 len_sround 阅读(340) 评论(0) 推荐(0)

分治法 divide and conquer
摘要:分治算法 divide and conquer 阅读全文

posted @ 2012-06-15 15:02 len_sround 阅读(1377) 评论(0) 推荐(0)

求解递归式,计算时间复杂度
摘要:简述求解递归式的三种方法:代换法,递归树法和主方法 阅读全文

posted @ 2012-06-15 11:58 len_sround 阅读(11050) 评论(0) 推荐(2)

导航