随笔分类 -  算法

摘要:http://blog.chinaunix.net/uid-26548237-id-3476141.html-------------------------------------------------------------------------二叉树的前序递归遍历void PreOrderTraverse(BiTree t){ if(t != NULL) { printf("%c ", t->data); PreOrderTraverse(t->lchild); PreOrderTraverse(t->rchild); }}... 阅读全文
posted @ 2013-11-04 15:44 virusdefender 阅读(280) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/liuaigui/article/details/5050697Hash查找因为其O(1)的查找性能而著称,被对查找性能要求高的应用所广泛采用。它的基本思想是:(1) 创建一个定长的线性Hash表,一般可以初始化时指定length;(2) 设计Hash函数,将关键字key散射到Hash表中。其中hash函数设计是最为关键的,均匀分布、冲突概率小全在它;(3) 通常采用拉链方法来解决hash冲突问题,即散射到同一个hash表项的关键字,以链表形式来表示(也称为桶backet);(4)给定关键字key,就可以在O(1) + O(m)的时间复杂度内定位到目标 阅读全文
posted @ 2013-10-31 13:06 virusdefender 阅读(610) 评论(0) 推荐(0)
摘要:链表有环的问题http://blog.chinaunix.net/uid-26565142-id-3184888.html链表相交的情况(编程之美)http://wenku.baidu.com/view/7a0abfeb19e8b8f67c1cb989.html时间复杂度为O(1)的删除链表节点http://www.nowamagic.net/librarys/veda/detail/261逆转链表http://blog.chinaunix.net/uid-26281173-id-2943227.html 阅读全文
posted @ 2013-10-22 20:40 virusdefender 阅读(110) 评论(0) 推荐(0)
摘要:c语言使用qsort()库函数 进行快速排序#include #include int cmp_1 (const void *a, const void *b ){ return *(int *)a - *(int *)b;}int cmp_2 (const void *a, const void *b){ return *(int *)b - *(int *)a;}int main(){ int num[10]={1,3,5,7,9,2,4,6,8,0}; int i; qsort(num,10,sizeof(num[0]),cmp_1);//从小到大 ... 阅读全文
posted @ 2013-10-12 14:46 virusdefender 阅读(840) 评论(0) 推荐(0)
摘要:最近做开发的时候用到c语言文件的读写函数fread(),采用while(!feof(fp))来控制循环,结果发现每次读取数据的时候总会把最后一个数据单元读取两次,很是不解。 后来查找资料发现,原来fread()在读到文件最后一个字节时,feof(fp)还是为0值,此时while(!feof(fp))的控制条件依然为真,所以会将最后一个数据单元再次读取一遍。然后feof(fp)才为非0值,因此说这个方法在某些场合是不可行的。 可以采用 while(fread(p,len,1,fp)) 的方式来判断,因为fread返回的是读取的字节数,如果到了文件末尾,则读取到的字节数为0,while判断为假,. 阅读全文
posted @ 2013-10-11 20:01 virusdefender 阅读(1258) 评论(0) 推荐(0)