随笔分类 - 算法
摘要: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); }}...
阅读全文
摘要: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)的时间复杂度内定位到目标
阅读全文
摘要:链表有环的问题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
阅读全文
摘要: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);//从小到大 ...
阅读全文
摘要:最近做开发的时候用到c语言文件的读写函数fread(),采用while(!feof(fp))来控制循环,结果发现每次读取数据的时候总会把最后一个数据单元读取两次,很是不解。 后来查找资料发现,原来fread()在读到文件最后一个字节时,feof(fp)还是为0值,此时while(!feof(fp))的控制条件依然为真,所以会将最后一个数据单元再次读取一遍。然后feof(fp)才为非0值,因此说这个方法在某些场合是不可行的。 可以采用 while(fread(p,len,1,fp)) 的方式来判断,因为fread返回的是读取的字节数,如果到了文件末尾,则读取到的字节数为0,while判断为假,.
阅读全文
浙公网安备 33010602011771号