- 博客(23)
- 收藏
- 关注
原创 背包问题
0-1背包:有N件物品和一个容量为V的背包。第i件物品的重量是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]} 。 可以压缩空间,f[v]=max{f[v],f[v
2011-10-24 10:00:10 620 1
原创 最长公共子序列
动态规划的一个计算最长公共子序列的方法如下:以两个序列 X、Y 为例子:设有二维数组 f[i][j] 表示 X 的 i 位和 Y 的 j 位之前的最长公共子序列的长度,则有: f[1][1] = same(1,1) f[i][j] = max{f[i-1][j-1]+same(i,j),f[i-1][j],f[i][j-1]} 其中,sam
2011-10-24 09:41:33 527
原创 路由算法
RIP(距离向量算法):定期交换路由表收到相邻(路由器X的RIP报文)路由表1.修改所有项下一跳改为X, 距离加12.更新本路由表(1)空目的网络:原路由表无目的网络,直接添加(2)同目的网络: 下一跳是X, 替换 下一跳不是X,
2011-10-14 10:41:10 911
原创 页面替换算法
(1)先入先出(FIFO)(2)最近最少使用(LRU)(3)最优(OPT):换最晚用到的(4)二次机会(SCR):标记(0/1),环形队列(0:直接换,1:清0下一个)
2011-10-12 15:38:59 620
原创 TLB和cache
虚拟地址(叶号+偏移)-->TLB/页表-->物理地址(帧号+偏移)-->cache(标记+数据)/内存-->值TLB是一种cache进程(虚拟地址空间)分页,内存分帧
2011-10-12 14:25:17 718
原创 全排列算法
void perm(int list[], int k, int m) { int i; if(k == m) { for(i = 0; i m; i++)
2011-10-11 10:16:00 446
原创 操作系统的理解
只要具备 CPU+内存+时钟(RTC+Clock) 的能力就可以是一个计算设备而计算设备要有锁(Lock)的能力需要CPU和内存分别提供(比较内存+一次取固定位数内存值)原子操作OS对上提供编程框架,对下提供硬件(虚拟硬件)管理内核线程只在在内核空间运行,不同内核线程同一地址空间,可相互访问用户线程只在在用户空间运行,同一用户进程的不同线程同一地址空间,可相互访问,不同进
2011-10-09 18:02:23 555
原创 快速排序
【1】单向扫描PARTITION(A, p, r) x ← A[r] //以最后一个元素,A[r]为主元 i ← p - 1 for j ← p to r - 1 //注,j从p指向的是r-1,不是r。
2011-10-09 14:33:31 395
原创 重载和覆盖
重载:(1)相同的范围/在同一个类中(2)函数名字相同(3)参数不同(4)virtual 关键字可有可无。覆盖(1)不同的范围(分别位于派生类与基类);(2)函数名字相同(3)参数相同(4)基类函数必须有virtual 关键字
2011-10-09 09:33:07 372
原创 纯虚函数竟然可以有实现体(但无任何实用价值,声明成普通虚函数就可以了)
class A {virtual void foo()=0;}void A::foo(){}
2011-10-08 16:53:44 913
原创 重载new操作符
void * operator new(size_t size) {if (size == 0) { // 处理0字节请求时,size = 1; // 把它当作1 个字节请求来处理}while (1) {分配size 字节内
2011-10-06 13:21:12 546
转载 二叉树的左旋和右旋
树的旋转,分为左旋和右旋,以下借助图来做形象的解释和介绍:1.左旋(右子为轴,当前结点左旋)如上图所示:当在某个结点pivot上,做左旋操作时,我们假设它的右孩子y不是NIL[T],pivot可以为树内任意右孩子而不是NIL[T]的结点。左旋以pivot到y之
2011-10-05 10:31:34 30387 3
原创 红黑树
红黑树(带色的二叉查找树)(1)根结点黑色(2)红色结点的子结点为黑色(红色不相邻)(3)某结点到所有的空结点路径含相等数目的黑结点"(4)空结点为黑色"=====================================================
2011-10-04 15:36:12 1034
原创 B树,B+树
B树(m叉树)(1)每个结点最多m棵子树(2)根结点(非叶子)至少2棵子树(3)叶结点同一层(4)其他 至少m/2(上整)棵子树,格式(n,A0,K1,A1,K2,A2...Kn,An),n个数据,数据和子树严格有序B树查找:查结点(磁盘)+查子树(内
2011-10-04 09:48:17 630
原创 strcpy和strncpy
char * __cdecl strcpy(char * dst, const char * src){ char * cp = dst; while( *cp++ = *src++ ); return(
2011-10-03 17:46:29 420
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人