本月博客排行
-
第1名
龙儿筝 -
第2名
johnsmith9th -
第3名
wy_19921005 - zysnba
- sgqt
- lemonhandsome
年度博客排行
-
第1名
宏天软件 -
第2名
青否云后端云 -
第3名
龙儿筝 - gashero
- wallimn
- vipbooks
- benladeng5225
- wy_19921005
- fantaxy025025
- qepwqnp
- e_e
- 解宜然
- zysnba
- ssydxa219
- sam123456gz
- javashop
- arpenker
- tanling8334
- kaizi1992
- xpenxpen
- gaojingsong
- wiseboyloves
- xiangjie88
- ranbuijj
- ganxueyun
- sichunli_030
- xyuma
- wangchen.ily
- jh108020
- lemonhandsome
- zxq_2017
- jbosscn
- Xeden
- luxurioust
- lzyfn123
- zhanjia
- forestqqqq
- johnsmith9th
- ajinn
- nychen2000
- wjianwei666
- hanbaohong
- daizj
- 喧嚣求静
- silverend
- mwhgJava
- kingwell.leng
- lchb139128
- lich0079
- kristy_yy
最新文章列表
【算法导论】入门概念
写程序,学语言,其实这些都是需要时间的沉淀的,但是唯独算法与数据结构这些程序的核心与灵魂是几乎不变的(也有一定的变化,不过本质相同),所以,希望各位码农们可以学习一下算法和数据结构,了解这些核心的东西,实际的对自己进行提升。
小弟菜鸟一枚,对算法不太感冒,不过,感觉必须做一些核心的东西才行,所以,打算坚持学习了解一些算法。
算法的概念:简单来说,所谓算法(algorithm)就是 ...
算法导论-14.3-7-O(lgn)时间求矩形集合中重叠矩形的个数
题目:
思考:
采用红黑树作为基础数据结构,扩展为14.3中的区间树。
第一步:
对每个矩形的左边x和右边x排序,排序结果放在一个序列中。并记录每个x值属于哪个矩形。
如三个矩形的x区间(左边x,右边x)分别是(1,3),(2,4),(3,5),排序结果(x值,属于哪个矩形)是(1,1),(2,2),(3,1),(3,3),(4,2),(5,3)。
第二步:
依次处 ...
算法导论-14.3-7-O(lgn)时间求矩形集合中重叠矩形的个数
题目:
思考:
采用红黑树作为基础数据结构,扩展为14.3中的区间树。
第一步:
对每个矩形的左边x和右边x排序,排序结果放在一个序列中。并记录每个x值属于哪个矩形。
如三个矩形的x区间(左边x,右边x)分别是(1,3),(2,4),(3,5),排序结果(x值,属于哪个矩形)是(1,1),(2,2),(3,1),(3,3),(4,2),(5,3)。
第二步:
依次处 ...
算法导论16.2-6
在O(n)时间范围内解决部分背包问题。
思路:利用快排的思想将数组分为三部分,A,B,C,其中B只包含划分区域的主元一个元素。计算A中物品的重量,如果超过了volume,则继续对A进行划分。如果
w(A)<volume<=W(A+B),则将A中的元素都装进背包,同时尽可能的往背包里填B中的物品,如果volume>W(A+B),则A,B都入包,同时对C进行划分
代码如下: ...
算法导论第十五章习题15-1--双调欧几里得旅行商问题
思路:1),首先将所有点加上坐标,x轴指向右,y轴指向下。然后将所有点按照x轴坐标从小到大排列。
2)总体思路是依次从排好序的节点取出一个节点,决定该节点应该放在第一条路径上还是第二条路径上。 3)定义一个数组:double b[8][8]; //b[i][j]表示第一条路径搜索到第i各节点,第二条路径搜索到第j个节点后的最短路径长度。如果i==j则说明两条路径汇聚到i点上
如果i==n则 ...
算法导论第十五章习题15.4-2
不适用数组b就能实现LCS结果的打印,代码如下:
//LCS
#include<iostream>
#include<string>
using namespace std;
//改进的LCS算法,不使用数组b便可打印出结果
void LCS_LengthC(string x,string y,int (*c)[100])
{
int m,n;
m=x.length ...
算法导论第十五章--动态规划的变形(做备忘录的递归算法)
动态规划中的 循环结构可以通过递归的方式实现,但是单纯的递归方法每次都会将已计算过的子问题重新计算,时间复杂度较高,因此可以通过在递归中做备忘录的方法建设时间复杂度。具体见代码:
#include<iostream>
using namespace std;
//动态规划的一种变种,通过在递归的算法中添加备忘,来维护记录子问题的表格。这种方法是一种自顶向下的
//方法,该方法优于单纯 ...
算法导论系列——第二章习题乱解【原创】
算法导论第二章习题答案
2.1插入排序
2.1-1-2.1-2略过。
2.1-3
查找问题:
输入:一列数A={a1,
a2, ...an}和值v。
输出:下标i,使得v=A[i],若v不在A中,则输出NIL
Random(0,1)生成Random(a,b)
算法导论5.1-1
参考博客
http://blog.csdn.net/effenberg11/article/details/5976838
http://qianggezhishen.bokee.com/viewdiary.43964492.html
博客中算法
1、把要生成的数标记为 a, a+1, a+2,..., b-a+1,…,b-1,b 2、取最小的 m,使得 2^m ...