常用查找算法

原创 2003年11月07日 01:03:00

//search.h包含了所有的常用查找算法

//使用顺序查找法的查找函数
//seqSearch(const int arr[],int first,int last,int target)
template <typename T>
int seqSearch(const T arr[],int first,int last,const T& target)
{
 int i=first;

 //扫描下标范围first<=i<last; 测试是否有匹配
 //或下标超出范围
 while (!(i==last)&&!(arr[i]==target))
  i++;

 return i;    //i是匹配值的下标,或者,如果没有匹配,则i=last
}

//模板函数find_last_of()的实现
template <typename T>
int find_last_of(const T arr[],int first,int last,const T& target)
{
 int i=last-1;

 //描扫下标范围first<=i<last;测试是否有匹配
 //或下标超出范围
 while(i>=first&&target!=arr[i])
  i--;
 if (i<first) return last; //没找到,则返回last
 return i;
}

//二分查找算法函数binSearch()的实现
template <typename T>
int binSearch(const T arr[],int first,int last,const T& target)
{
 int mid;                    //中间点的下标
 T midValue;               //用于保存arr[mid]元素值

 int origLast=last;          //保存last的初始值

 while(first<last)           //测试非空子表,如果是非空子表,则继续查找
 {
  mid=(first+last)/2;
  midValue=arr[mid];
  if (target==midValue)   //有一个匹配
   return mid;
  //确定要查找哪个子表
  else if(target<midValue)
   last=mid;
  else
   first=mid+1;        //查找子表的后半部分,重新设置first
 }
 return origLast;            //没有找到目标值
}


 

常见查找算法总结

静态查找结构主要有两种:顺序查找、折半查找 一、顺序查找:这个就不用说了,一个一个的差吧,很差劲的算法了,时间复杂度是O(n)      public int shunXuSear...
  • zengtian006
  • zengtian006
  • 2014年04月18日 17:22
  • 5032

几种常见的查找算法之比较

一、顺序查找   条件:无序或有序队列。   原理:按顺序比较每个元素,直到找到关键字为止。   时间复杂度:O(n) 二、二分查找(折半查找)   条件:有序数组   原理:查找过程从数组的中间元...
  • m372897500
  • m372897500
  • 2016年05月23日 01:07
  • 394

java常用的排序和查找算法

...
  • zxwd2015
  • zxwd2015
  • 2017年03月03日 19:19
  • 276

[Java]各种基础的查找和排序算法总结

查找方法: 1.顺序查找。 按数组的顺序从前往后一直比较,直到找到目标值返回。 优点:对数组的结构没有特定的要求,算法简单。 缺点:当数组个数n较大时,效率低下。 时间复杂度:最大时间复杂度是O(n)...
  • qq284565035
  • qq284565035
  • 2014年12月02日 16:30
  • 1839

程序员必须知道的10大基础实用算法及其讲解:排序、查找、搜索和分类等

算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序...
  • xingdou520
  • xingdou520
  • 2016年11月19日 18:32
  • 2458

【面试必读(编程基础)】几种查找算法

http://www.cnblogs.com/maybe2030/p/4715035.html?utm_source=tuicool&utm_medium=referral 查找是在...
  • chrisfxs
  • chrisfxs
  • 2017年04月18日 19:51
  • 1108

c/c++常用算法(13) -- 基本查找算法

查找的概念        查找表(SearchTable):相同类型的数据元素(对象)组成的集合,每个元素通常由若干数据项构成。               关键字(Key,码):数据元素中某个(或...
  • my183100521
  • my183100521
  • 2014年01月06日 11:47
  • 2630

衡量查找算法效率的主要标准是( )。

衡量查找算法效率的主要标准是( )。 正确答案: C   你的答案: C (正确) 元素个数 所需的存储量 均匀查找长度 算法难易程度 ...
  • chengonghao
  • chengonghao
  • 2016年07月13日 21:37
  • 1589

常用的 STL 查找算法

《effective STL》中有句忠告,尽量用算法替代手写循环;查找少不了循环遍历,在这里总结下常用的STL查找算法;...
  • hbdhj
  • hbdhj
  • 2016年04月01日 13:04
  • 123

Java 常用查找算法

面试中经常会问一些查找算法,今天来总结一下常用的查找算法 一、顺序查找 描述:从表中的第一个或者是最后一个记录开始,将表中记录的关键字和给定的值进行逐个比较,若某个记录的关键字和给...
  • QDJdeveloper
  • QDJdeveloper
  • 2017年10月10日 14:33
  • 1000
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:常用查找算法
举报原因:
原因补充:

(最多只允许输入30个字)