有序表查找 /* 主函数 */ public class OrderTableSearch { public static void main(String[] args) { int [] a= {0,1,16,24,35,47,59,62,73,88,99}; System.ou...
分类:
编程语言 时间:
2016-01-13 19:51:21
阅读次数:
307
首先,我们来看一个笔者的拙作,一段二分查找代码 //返回值是key的下标,如果A中不存在key则返回-1
template?<class?T>
int?BinSearch(T*?A,?const?T?&key,?int?lo,?int?hi)
{
????int?mid;
??...
分类:
其他好文 时间:
2015-09-30 01:16:39
阅读次数:
221
最近看见一个要求仅使用加法减法实现二分查找的题目,百度了一下,原来要用到一个叫做斐波那契查找的的算法。查百度,是这样说的:斐波那契查找与折半查找很相似,他是根据斐波那契序列的特点对有序表进行分割的。他要求开始表中记录的个数为某个斐波那契数小1,即n=F(k)-1;开始将k值与第F(k-1)位置的记录...
分类:
其他好文 时间:
2015-09-25 23:06:11
阅读次数:
352
// 斐波那契查找.cpp
#include
#include
using namespace std; const int max_size=20;//斐波那契数组的长度 /*构造一个斐波那契数组*/
void Fibonacci(int * F)
{
F[0]=0;...
分类:
其他好文 时间:
2015-06-21 09:30:24
阅读次数:
245
数据结构中提供了很多查找算法,诸如插值查找,顺序查找,斐波那契查找等。按查找的操作方式分类,分为:静态查找:数据集合稳定,不需要添加,删除元素的查找操作。动态查找:数据集合在查找的过程中,需要同时添加,或者删除元素的查找操作。例如当在维基百科中查找东西,当查找目标不存在时,会提示用户:是否创建一个?...
分类:
编程语言 时间:
2015-06-20 21:58:46
阅读次数:
276
查找定义:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。
查找表分类:静态查找表和动态查找表。
静态查找表:只查找,而不进行插入,删除。
动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经存在的某个数据元素。
静态表的 查找 大致 四种 算法: 线性查找,二分查找,斐波那契查找和插值查找。 其中 在线性...
分类:
其他好文 时间:
2015-04-20 13:16:26
阅读次数:
128
静态查找表顺序查找有序查找折半查找(binary search)判定树 折半查找只适用于有序表,且限于顺序存储结构(对线性链表无法有效的进行折半查找)斐波那契查找:根据斐波那契序列的特点进行分割,假设开始时表中记录个数比某个斐波那契数小1即n=fu-1,然后将给定值key和 [fu -1 ].key...
分类:
其他好文 时间:
2015-01-13 07:50:39
阅读次数:
243
/* 斐波那契查找法 */
#include
#include
int Fib( int k )
{
if( 1 == k || 2 == k )
return 1;
else
return Fib(k-1)+Fib(k-2);
}
int FibSearch( int *a, int n, int key )
{
int k = 1;
int nFib;
int *b...
分类:
编程语言 时间:
2014-12-01 22:33:54
阅读次数:
259