这个是个基本的查找算法,因为只是把数读入就需要(N)的时间量,因此我们在说这类问题的时候都是假设读入过的。
在算法常用的时间,将问题缩小为一部分(大约1/2),那么我们就认为这个算法是O(logn)级别的。...
分类:
编程语言 时间:
2014-07-24 10:29:06
阅读次数:
239
二叉排序数或者是一棵空树,或者是一棵具有以下性质的二叉树:(1)若它有左子树,则左子树上所有结点的数据均小于根结点的数据。(2)若它有右子树,则右子树上所有结点的数据均大于根结点的数据。(3)左、右子树本身又各是一棵二叉排序树。这样,在查找的时候,从根节点开始,若查找的元素小于根节点则查找其左子树,...
分类:
其他好文 时间:
2014-07-22 23:29:37
阅读次数:
367
?顺序查找 从线性表的一端开始,依次将每个记录的关键字与给定值进行比较,若某个记录的关键字等于给定值,表示查找成功,返回记录序号;若将线性表中所有记录都比较完,仍未找到关键字与给定值相等的记录,则表示查找失败,返回一个失败值。?折半查找 又称为二分查找。这种查找方法要求查找表的数据是线性结构保存.....
分类:
其他好文 时间:
2014-07-22 23:17:57
阅读次数:
348
1.折半查找算法:对于一个已排好序的数组,若要查找某元素是否属于数组中,则可以用这种算法。返回找到的元素在数组中的下标,找不到则返回-1#include #define LEN 8int a[LEN] = { 1, 3, 3, 3, 4, 5, 6, 7 };int binarysearch(int...
分类:
其他好文 时间:
2014-07-16 19:34:22
阅读次数:
135
在一个长串中查找一个子串是较常用的操作。各种信息检索系统,文字处理系统都少不了。本文介绍一个非常著名的KMP模式匹配算法用于子串查找...
分类:
其他好文 时间:
2014-07-16 17:09:49
阅读次数:
177
概念:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。...
分类:
其他好文 时间:
2014-07-12 23:28:08
阅读次数:
362
二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其时间为O(n).但二分查找算法则更优,因为其查找时间为O(lgn),譬如数组{1, 2, 3, 4, 5, 6, 7, 8, 9},查找元素6,用二分查找的算法执行....
分类:
其他好文 时间:
2014-07-11 10:40:19
阅读次数:
183
问题描写叙述:在计算机科学中,并查集是一种树型的数据结构,其保持着用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个操作用于此数据结构:Find:确定元素属于哪一个子集。它能够被用来确定两个元素是否属于同一...
分类:
编程语言 时间:
2014-07-10 14:40:47
阅读次数:
250
最近又重新学习了KMP算法,相比一般的暴力搜索,其对于“搜索陷阱”进行了优化处理。从而降低了时间复杂度。该算法最酷的地方在于准确找到了“搜索陷阱”的模板(or规律)。从而进行了特殊处理。...
分类:
其他好文 时间:
2014-07-08 14:55:04
阅读次数:
209
问题
Python中的二叉树查找算法模块
思路说明
二叉树查找算法,在开发实践中,会经常用到。按照惯例,对于这么一个常用的东西,Python一定会提供轮子的。是的,python就是这样,一定会让开发者省心,降低开发者的工作压力。
python中的二叉树模块内容:
BinaryTree:非平衡二叉树 AVLTree:平衡的AVL树 RBTree:平衡的红黑树
...
分类:
编程语言 时间:
2014-07-04 07:47:15
阅读次数:
287