数据结构与算法
文章平均质量分 82
yqferin
纸上得来终觉浅,绝知此事要躬行!
展开
-
红黑树的Java实现
概念红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,他称之为”对称二叉B树”,它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log n)时间内做查找,转载 2015-04-09 15:01:07 · 359 阅读 · 0 评论 -
BST树 B-树 B+树 B*树简介
BST即二叉搜索树:1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:B-树(B树)是一种多路搜索树(并不是二叉的):1.定义任意非叶子结点最多只有M个儿子,且M>2;2.根结点的儿子数为[2, M];3.除根结点以外的非叶子结点的儿子数为[M/2, M];4.每个结点存放至少M/2转载 2015-04-09 15:54:38 · 342 阅读 · 0 评论 -
内部排序算法
1.插入排序(1)直接插入排序思想: 利用有序表的插入操作进行排序有序表的插入: 将一个记录插入到已排好序的有序表中,从而得到一个新的有序表。动画取自:http://www.cricode.com/3212.htmlvoid insertsort(ElemType R[],int n) //待排序元素用一个数组R表示,数组有n个元素 { for ( int i=1; i<n;原创 2015-06-11 20:14:25 · 297 阅读 · 0 评论 -
模式匹配算法
简单模式匹配算法 BF算法(Brute-Force,又称古典的、经典的、朴素的、穷举的) 带回溯,速度慢 算法设计思想: 将主串S的第pos个字符和模式T的第1个字符比较,若相等,继续逐个比较后续字符;若不等,从主串S的下一字符(pos+1)起,重新与T的第一个字符比较。 直到主串S的一个连续子串字符序列与模式T相等。返回值为S中与T匹配的子序列第一个字符的序号,即匹配成功。 否则,匹原创 2015-06-08 07:38:39 · 3948 阅读 · 0 评论 -
位图bitmap算法
简单地说就是用数组存放,若有数据就标志为1或true,若不存在标志为0或false。比如1,2,2,5,这里最大值为5,0至5中不存0,3,4,所以:Array[0]=0,Array[1]=1,Array[2]=2,Array[3]=0,Array[4]=0,Array[5]=1上面数中由于2有两个,所以用int存数组的值,不用boolean型,这样如果有多个同样的数字可以用值表示个数。如上转载 2015-05-08 15:59:46 · 542 阅读 · 0 评论 -
二叉树的遍历
深度优先遍历1、先序遍历 访问跟节点 先序遍历左子树 先序遍历右子树 (1)递归算法实现:template<class T> void BinaryTree<T>::PreOrder (BinaryTreeNode<T> *root) { // 前序周游二叉树或其子树 if (root != NULL) { Visit(root->value());原创 2015-06-09 19:29:26 · 481 阅读 · 0 评论