
编程珠玑
文章平均质量分 62
ruo砚
以前的代码还真的是忘得一干二净
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第四章 二分查找(数组)
习题 1.给定的l 和 h 的范围包括-1 和 n两个哨兵节点的范围i l 是 [0, n], h 是 [-1, n) 使得 l + h 的范围在[-1, 2n - 1]之间 同时,表明我们不会访问数组哨兵元素,因为哨兵是 l-1, 和 u+ 1; l-1 最小是 -1, u+1 最大是 n, 都不在数组的l 和 h 的范围之内 哨兵的使用int Sequential_Search2原创 2016-04-23 14:16:46 · 323 阅读 · 0 评论 -
第十三章 搜索
void insert(int t) { head = iinsert(head, t); } node *iinsert(node *p, int t) { if (p->val val == t或者p->val > t,因此继续进行判断,从而确定是否要创建新节点 p->next = iinsert(p->next, t); else if (p->原创 2016-04-25 20:47:49 · 284 阅读 · 0 评论 -
第二章:算法
习题 2.先在磁盘里用二分查找,分成0和1两部分,之后必然有一份数量较少,此部分缺少元素,在此部分再次二分查找,选择较少的部分继续,直到较少的一份达到内存要求,进入内存,利用位图 3.在于发现循环移动的不变性可以看作是两部分交换的通用情况,简单的两部分交换,两部分的大小一致,可以直接交换,通用情况是两部分大小不一致,因此需要利用不变性转化为通用情况,最后在进行两部分的交换 #include原创 2016-04-22 21:05:23 · 288 阅读 · 0 评论 -
第三章:数据决定数据结构
习题 2 #include #include #include using namespace std; int main() { int k, m; k = 1; cout << "input the base number up limited number m"; cin >> m; ifstream in; in.open("k.txt"); vector v(m原创 2016-04-23 02:39:57 · 317 阅读 · 0 评论 -
再探二分搜索
1基本的二分搜索, 在没有重复元素的数组中查找一个元素 #include int binsearch(int a[], int t, int l, int h) { int p; while (1) { if (l > h) { p = -1; break; } int m = (l + h) / 2; if (a[m] < t) l = m原创 2016-04-24 14:38:50 · 267 阅读 · 0 评论 -
第九章 代码调优
2 注意,因为freenode 要进行 freenode + nodesize, 因此freenode 不能声明为void * , pointer 的移动是 sizeof(*pointer) * nodesize, 一次申请空间会有overhead,这个大小是固定的,如果一次申请很小的空间的话,空间的有效利用率很低 #define NODESIZE 8 #define NODESGROU原创 2016-04-24 20:09:20 · 213 阅读 · 0 评论