![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论习题
文章平均质量分 55
大力猫
这个作者很懒,什么都没留下…
展开
-
算法导论习题2.3-6 用二分查找改进插入排序(c实现)
#include void sort(int s[],int size) { for(int i = 1;i <size; i++) { int key = s[i]; int low = 0; int high = i-1; int midd原创 2014-01-18 12:24:04 · 477 阅读 · 0 评论 -
算法导论 2.3-7 给出一个运行时间为⊙(nlgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个整数x时,判断出S中是否存在有两个其和等于x的元素
1,首先对n个元素排序(归并排序或者堆排序),时间复杂度为⊙(nlgn); 2,令Xi = A[i], Xj = A[j],初始化i = 0, j = n - 1 按照如下规则进行: if Xi + Xj then i++ if Xi + Xj > X then j-- if Xi + Xj == X then print Xi and Xj转载 2014-01-18 12:26:49 · 1088 阅读 · 0 评论 -
算法导论 2-1思考题 合并排序中对小数组采用插入排序
在合并排序中对小数组采用插入排序。 注:书里的那个O里还有一杠的符号打不出来,所以这里用大O代替了,特指同阶无穷大量。 尽管合并排序最坏情况运行时间为O(nlgn),插入排序的最坏运行时间为O(n^2),但是插入排序的常数因子使得它在n较小时,运行要更快一些。因此,在合并排序算法中,当子问题足够小时,采用插入排序就比较合适了。考虑对合并排序做这样的修改,即采用插入排序策略,对n/k 个长度原创 2014-01-19 12:42:54 · 465 阅读 · 0 评论