随笔分类 - 算法导论
算法导论学习笔记,记录,分享
摘要:/* * IA_22.2BreadthFirstSearch.h * * Created on: Feb 13, 2015 * Author: sunyj */ #ifndef IA_22_2BREADTHFIRSTSEARCH_H_
#define IA_22_2BREADTHFIRSTSEARC...
阅读全文
摘要:转自 http://www.cnblogs.com/Anker/archive/2013/01/27/2879150.html 我还怕将来这篇日志被删除,所以粘贴了过来,这篇是一字未改的转贴 摘要: 本章介绍了散列表(hash table)的概念、散列函数的设计及散列冲突的处理。散列表类似与字典的目录,查找的元素都有一个key与之对应,在实践当中,散列技术的效率是很高的,合理的设计散函数和...
阅读全文
摘要:/* * IA_11.4OpenAddressing.h * * Created on: Feb 13, 2015 * Author: sunyj */ #ifndef IA_11_4OPENADDRESSING_H_
#define IA_11_4OPENADDRESSING_H_ #include #include #include class No...
阅读全文
摘要:11.2是第11章的主要内容,11章叫散列表(Hash Tables)11.2也叫散列表(Hash Tables) 11.3节讲散列函数(比如除尘散列法),11.4节讲处理碰撞的另外一种方法区别于链式法技术 散列技术,有两个事情要做,一是先哈希函数(11.3),二是解决碰撞技术(11.2链式解决碰撞,11.4开放寻址解决碰撞)。 /* * IA_11.2Cha...
阅读全文
摘要:带哨兵的双向链表,代码中我使用了nullptr,所以需要编译器升级,我的编译器是gcc/g++ 4.7.0这是可以的,编译的时候加参数—std=c++0x 节点中还可能有卫星元素 /* * IA_10.2LinkedLists.h * * Created on: Feb 13, 2015 * Author: sunyj */ ...
阅读全文
摘要:散列表比直接存储的唯一好处是,节省空间
阅读全文
摘要:注意n个空间的队列,有最多n - 1个元素 /* * IA_10.1queue.h * * Created on: Feb 13, 2015 * Author: sunyj */ #ifndef IA_10_1QUEUE_H_
#define IA_10_1QUEUE_H_ #include #include // ENQUEUE(Q, x)
// Q...
阅读全文
摘要:1 /* 2 * IA_10.1_stack.h 3 * 4 * Created on: Feb 13, 2015 5 * Author: sunyj 6 */ 7 8 #ifndef IA_10_1_STACK_H_ 9 #define IA_10_1_STACK_H_1...
阅读全文
摘要:#include #include #include #ifdef __linux
#include #include #endif void swap(int64_t* A, uint64_t i, uint64_t j)
{ int64_t tmp = A[i]; A[i] = A[j]; A[j] = tmp;
} int64_t ...
阅读全文
摘要:以下摘自网络 随机化快排:快速排序的最坏情况基于每次划分对主元的选择。基本的快速排序选取第一个元素作为主元。这样在数组已经有序的情况下,每次划分将得到最坏的结果。一种比较常见的优化方法是随机化算法,即随机选取一个元素作为主元。这种情况下虽然最坏情况仍然是O(n^2),但最坏情况不再依赖于输入数据,而是由于随机函数取值不佳。实际上,随机化快速排序得到理论最坏情况的可能性仅为1/(2^n)。所以随机化...
阅读全文
摘要:#include #include #ifdef __linux
#include #endif
// MINIMUM(A)
// MIN = A[1]
// for i = 2 to A.length
// if min > A[i]
// min = A[i]
// return min int64_t minimum(int64_t* A, i...
阅读全文