
阅读
文章平均质量分 81
iteye_16109
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Moment in Peking
"Moment in Peking" was the novel Lin Yutang most proud of himself. Frankly speaking, that was also the original reason I decided to take it down from the shelf of the library and had a read on it, alt...原创 2011-06-05 17:01:23 · 745 阅读 · 0 评论 -
C专家编程--运行时数据结构
首先看一下编译完成后的可执行文件a.out的段在内存中的布局: 运行时数据结构有好几种,包括堆栈,活动记录(activation record)、数据、堆等。 堆栈主要有三个用途: 1. 堆栈为函数内部声明的局部变量(automic variable,自动变量)提供存储空间; 2. 进行函数调用时,堆栈存储与此有关的一些维护信息,即活动记录 3. 堆栈也可...原创 2011-04-13 15:26:03 · 212 阅读 · 0 评论 -
编程珠玑 -- bitSort
<C专家编程>看完了。受益最大的应该就是对声明部分的理解吧,特别是函数指针什么的。通过函数指针,可以实现一个自动机。我是这么想的。另外就是因此而学会了使用vi进行编程。接下来想学写makefile文件,不然文件一多调试修改后又要重新编译好几个文件。 回到编程珠玑上。第一篇描述了这样一个问题:在一定的内存限定下(内存大概有1MB)对一个包含有K个小于n (n=10^7)的数据的文件进行排序,...原创 2011-04-21 11:05:06 · 163 阅读 · 0 评论 -
编程珠玑 -- swap section
编程珠玑第二篇主要提出了三个思想: 1。 二分查找。(binary search) 2。 交换分区。(swap section) 3。 签名。 (signature) 二分查找比较耳熟能详,签名的话我觉得是个很好的思想,差不多相当于hashMap吧。这一节我主要关注的是交换分区的算法。 问题描述大概如下:旋转一个长度为n的字符串i个位置。比如,字符串"abcde...原创 2011-04-21 11:53:58 · 180 阅读 · 0 评论 -
STL和内存管理技术
前段日子读了STL的源码,大师级的作品真是精致到让人喟叹。当然,有时候你在网上还是可以看到很多对STL的批评,例如,对编译器要求很高,很多时候出错了的话,打印出来的错误信息总是让人摸不着头脑的。这确实是比较头疼的一个问题,因为模板编程,编译的过程总是分为两个部分的,是先要找到相应的模板,然后才对模板进行具现化,有时候单纯从模板来看,似乎很完整,没有什么问题呀,可是一旦投入使用了,才发现找不到合适的...2012-03-17 16:46:25 · 272 阅读 · 0 评论 -
stl中的几个精美算法
关于STL中的算法,我印象比较深刻的主要有用于list的sort、power以及用于random_access_iterator的qsort,list是一种bidirectional_iterator,因此设计了自己的一个sort算法,主要思想是mergesort。 首先看一下list中的sort: [code="cpp"] template void list::sort(){ ...原创 2012-03-17 18:35:49 · 217 阅读 · 0 评论 -
编程之美
前段日子又看了编程之美,后来闲着无聊学python去了,想着书将要送人,还是先总结一下,不然怕又要忘了,呵呵。 主要看的章节是第二、第三章,因为对数独有特别的感情,所以还顺带看了一四章关于数独的那两节。 [b]1. 对于一个字节的无符号整形变量,求其二进制表示中“1”的个数。[/b] 最简单的莫过于用/跟%一个位一个位地测试: [code="cpp"] int count( un...2012-04-02 16:54:09 · 155 阅读 · 0 评论 -
编程之美续
看完编程之美后看很多题,都会发现原来只是里面一些题目的变种(也大概因为看的是微软的笔试题吧。。),把原先的算法稍微一改,就变成了题目的解法,还是挺带劲的。 [b]1. 反转单向链表:给出单向链表的头指针,要求把链表反转过来。[/b] [code="cpp"] struct ListItem { int value; struct ListItem* next; }; L...2012-04-06 15:37:48 · 202 阅读 · 0 评论 -
《算法引论》之算法分析
上次写博客,已经是半个月之前了。我也不知道我这段日子在干嘛了,没有具体的目标与计划,比较随性,看了几本原本束之高阁的书,包括那本室友推荐,买来后一直搁在床头,不少著名的书里提到的《怎样解题》,以及那本曾经感觉不能理解的《孤独及其所创造的》,还看了一部《中国近代史》,因为还未买到港版,至今还在看小小的手机屏幕。昨夜清风习习,凉意袭人,没有负担,没有烦恼,可以看书看到自然睡,睡觉睡到自然醒,何其的幸福...原创 2012-04-26 14:01:43 · 159 阅读 · 0 评论 -
C专家编程--指针与数组
指针与数组的根本区别在于,指针存放的内容是“数据的地址”, 而数组存放的内容,就是数据本身。 访问指针指向的数组时,编译器首先取得指针存放的地址,如果指针有一个下标[I],就把指针的内容加上作为地址,从该地址中取数据。 而访问数组a时,a就是存放数据的地址,编译器直接从该地址中取数据,如果数组有一个下标[I],就把该地址加上I作为地址,从该地址中取数据。 也就是说,访问指针比访问数组多...原创 2011-04-11 23:41:26 · 140 阅读 · 0 评论 -
C专家编程--分析C语言的声明
1。 理解C语言声明的优先级规则 char* cpp; //cpp是一个指向char的指针 const char* cp; //cp是一个指向有const限定符的char的指针 cpp = cp; //这样是合法的,因为“左操作数具有右操作数所所指向类型的限定符(空),再加上自身的限定符(const)。 cp = cpp; ...原创 2011-04-11 19:55:19 · 175 阅读 · 0 评论 -
基于树的索引结构介绍
转眼又七月份了。6月份后来就变成考试月了。因为图论要求写阅读报告,某天看数据库的空间索引时,又正好看到关于基于树的一些索引技术,于是产生了以此为主题写份阅读报告的想法。今天算是完成了。总共介绍了5种树,二分查找树、AVL树、2-3树、B树及其变种B+树。B+树是现在运用最多的基于磁盘的索引方法。我打算等考完试再把这些树实现一下。以下是我的阅读报告,主要参考Clifford A. Shaffer的《...原创 2011-07-01 17:59:50 · 439 阅读 · 0 评论 -
编程珠玑 -- 数据结构?
又开始看《编程珠玑》,发现之前看的也许不是很认真吧,再看一遍的时候竟没有什么似曾相识的感觉。于是便开始做后面的习题了,也许这样能让我对这一章的内容印象更深刻些。 第三章介绍了几个案例,说明了数据的组织是如何影响程序的结构的,说到底,就是要设计好的数据结构,以减少编程的量。这一章的内容相对简单,我做了后面两道题:3.7的第1题和第4题,贴在这里了: 第一题: double getTax( in...原创 2011-12-21 21:15:09 · 157 阅读 · 0 评论 -
编程珠玑 -- 关于排序
《编程珠玑》主要提到的排序方法是快排,并通过对基本算法思想的微调,以提高效率及保证最坏情况下的性能。我又回过头去看了Clifford A. Shaffer的《数据结构与算法分析》,总结了几种内排序(internal sorting)算法。(所谓的内排序,就是把所有的数据都加载到内存中后再进行排序) 首先是插入排序。插入排序就跟我们平时在排放扑克牌的算法一样。每进来一张排,就从尾到前找,为它找到...原创 2011-12-27 20:12:39 · 181 阅读 · 0 评论 -
编程珠玑 -- 关于堆
堆是这样一种数据结构,它首先是一棵二叉树,而且还是一棵完全二叉树;其次,对于最小堆,父节点的值小于子节点。 有两种特殊要求的二叉树,一种是完全二叉树,一种是满二叉树。完全二叉树添加叶子节点的时候,要求从左到右添加,所以如果左子树没有被填满,就不会把叶子结点添加到右子树上。满二叉树则要求一个节点要么有两个孩子,要么就没有孩子。他们的形状如下: 完全二叉树的性质使我们可以使用一个数组来表达一...原创 2011-12-28 15:31:25 · 216 阅读 · 0 评论 -
编程珠玑--关于查找(二分法、自组织链、哈希)
查找是我们现实生活中经常需要做的事情。例如用字典查一个英文单词的释意,首先我们会定位到这个单词所在的页,然后再看与该单词关联的解释。这个过程中,单词是key,而单词+单词的释意则是一个record。信息的组织方式很大程度上影响了查找的方法,《编程珠玑》和《数据结构与算法分析》一样,介绍了针对两种信息组织方式的不同的查找方法。 首先是链表/数组的线性组织方式。在这种情况下,如果数据是排序的,那么二...原创 2011-12-31 19:36:11 · 279 阅读 · 0 评论 -
数据结构 -- 二叉树(BST, AVLTree, RBTree, SplayTree)
在《基于树的索引结构介绍》(http://philoscience.iteye.com/admin/blogs/1112759)中提到了二分查找树及其改进版本AVL树(平衡二叉树)。二分查找树比较简单,但是很容易产生不平衡的问题而丧失了二分查找树的优势,AVL树规定了左右孩子树的高度差超过1则为不平衡,为了维持平衡,在插入和删除子节点后,必须进行相应的旋转。还有一种著名的红黑树,红黑树放宽了平衡的...原创 2012-01-17 21:31:34 · 443 阅读 · 1 评论 -
C专家编程--C语言中的符号优先级
. 的优先级高于* *p.f ==> 对p取f偏移,然后进行解除引用操作 []高于* int *ap[] ==> ap是个元素为int指针的数组 函数()高于* int *fp() ==> fp是个函数,返回int*. ==和!=高于位操作符 (val&mask != 0 ) ==> val &...原创 2011-04-10 17:47:24 · 151 阅读 · 0 评论 -
C专家编程--C语言中的符号重载
static 在函数内部,做为变量修饰符表示该变量的值在各个调用间一直保持待续性 在函数外部修饰函数,表示该函数只对本文件可见 extern 作为函数修饰符时,表示函数全局可见(属于冗余) 用于变量,表示它在其他地方定义 void 作为函数的返回类型,表示不返回任何值 在指针声明中,表示通用指针的类型 位于参数列表中,表示没有参数(属于冗余) ...原创 2011-04-10 17:48:34 · 113 阅读 · 0 评论 -
总共有多少个数独?
憋屈地看了一个星期的论文,实在是没一点意思。为了娱乐一下自己,兼受同学启发,我决定用python写一个数独游戏。从大二开始装了个ubuntu系统后,就发现了这个有趣的游戏。之后每次进入这个系统,非得先来几局数独;再到后来,为了玩数独,特意进了这个系统。喜欢这个自带的游戏的特点,界面简单,只做必要的错误提示,可以回溯,是我用过的最理想的数独游戏了,呵呵。至于我自己打算做一个数独游戏,纯粹是为了现学现...2012-05-12 15:31:01 · 551 阅读 · 0 评论