查找算法
qq_2773878606
学生
展开
-
顺序查找
首先来看一下查找技术的分类。如下图:顺序查找的原理很简单,就是遍历整个列表,逐个进行记录的关键字与给定值比较,若某个记录的关键字和给定值相等,则查找成功,找到所查的记录。如果直到最后一个记录,其关键字和给定值比较都不等时,则表中没有所查的记录,查找失败。下面是顺序查找的算法实现代码。/* 顺序查找,a为数组,n为要查找的数组元素个数,key为要查找的关键字*/int Sequ原创 2016-07-25 14:58:35 · 502 阅读 · 0 评论 -
二分查找
基本思想:取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录左半区继续查找;否则,在右半区查找。不断重复,知道查找成功或者查找失败为止。/*折半查找,非递归*/int Binary_Search(int *a, int n, int key){ int low, high; int mid; low原创 2016-07-25 14:59:51 · 227 阅读 · 0 评论 -
斐波那契查找
原理:利用斐波那契数列的性质,黄金分割的原理来确定mid的位置。代码如下:/*斐波那契 查找*/int Fbonacci_Search(int *a, int n, int key){ int low,high,mid,i,k; int F[] = {0,1,1,2,3,5,8,13,21,34}; //经典的斐波那契数列已经早就定义好,也可以递归自己求解。 low =原创 2016-07-25 15:02:35 · 302 阅读 · 0 评论 -
二叉排序树
构造一棵二叉排序树的目的,其实并不是为了排序,而是为了提高查找和插入删除的效率。那么什么是二叉排序树呢?二叉排序树具有以下几个特点。1,若根节点有左子树,则左子树的所有节点都比根节点小。2,若根节点有右子树,则右子树的所有节点都比根节点大。3,根节点的左,右子树也分别为二叉排序树。下面是二叉排序树的图示,通过图可以加深对二叉排序树的理解。下面是二叉排序树常见的操作及思路转载 2016-07-25 15:05:07 · 451 阅读 · 0 评论 -
哈希查找
哈希查找,也称为散列查找(本文以哈希称呼)。提起哈希,我的第一印象就是C#中的Hashtable类,它是由一组key/value的键值对组成的集合,它就是应用了散列技术。那么,什么是哈希查找呢?在弄清楚什么是哈希查找之前,我们要弄清楚哈希技术,哈希技术是在记录的存储位置和记录的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。查找时,根据这个确定的对应关系找转载 2016-07-25 16:08:05 · 667 阅读 · 0 评论