五种查找算法总结

原创 2015年11月20日 10:51:45


 

一、顺序查找

  条件:无序或有序队列。

  原理:按顺序比较每个元素,直到找到关键字为止。

  时间复杂度:O(n)

二、二分查找(折半查找)

  条件:有序数组

  原理:查找过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;

     如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。

     如果在某一步骤数组为空,则代表找不到。

     这种搜索算法每一次比较都使搜索范围缩小一半。

  时间复杂度:O(logn)

三、二叉排序树查找

  条件:先创建二叉排序树:

      1. 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;

      2. 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;

      3. 它的左、右子树也分别为二叉排序树。

  原理:

    在二叉查找树b中查找x的过程为:

    1. 若b是空树,则搜索失败,否则:

    2. 若x等于b的根节点的数据域之值,则查找成功;否则:

    3. 若x小于b的根节点的数据域之值,则搜索左子树;否则:

    4. 查找右子树。

  时间复杂度:  

四、哈希表法(散列表)

  条件:先创建哈希表(散列表

  原理:根据键值方式(Key value)进行查找,通过散列函数,定位数据元素。

  时间复杂度:几乎是O(1),取决于产生冲突的多少。

五、分块查找

  原理:将n个数据元素"按块有序"划分为m块(m ≤ n)。

     每一块中的结点不必有序,但块与块之间必须"按块有序";即第1块中任一元素的关键字都必须小于第2块中任一元素的关键字;

     而第2块中任一元素又都必须小于第3块中的任一元素,……。

  然后使用二分查找及顺序查找。

版权声明:本文为博主原创文章,未经博主允许不得转载。

五种查找算法总结

下列五种查找算法,除顺序查找外,其他算法的思路基本相同:   先对数据按某种方法进行排序,然后使用相应的规则查找。 因此,搞清排序算法才是关键。 一、顺序查找   条件:无序或有序队列。   原理:按...
  • aixing5369
  • aixing5369
  • 2013年11月15日 14:54
  • 446

几种查找算法的比较

1.堆的意义在于最快的找到最大最小值,在堆中插入一个值,取走最大值或最小值重新构建堆结构,其时间复杂度为O(log N) ,而其它方法至少为O(N)。 堆在实际中用途不在于排序,堆的应用: a.在...
  • u013857493
  • u013857493
  • 2015年08月17日 12:28
  • 635

5大常用算法总结

算法一:动态规划算法 一、基本概念     动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程...
  • piriter
  • piriter
  • 2014年12月09日 18:46
  • 1596

五种查找算法

下列五种查找算法,除顺序查找外,其他算法的思路基本相同:   先对数据按某种方法进行排序,然后使用相应的规则查找。 因此,搞清排序算法才是关键。 一、顺序查找   条件:无序或...
  • NameWFY
  • NameWFY
  • 2017年12月04日 11:10
  • 88

五种常用算法

分治算法 一、基本概念    在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直...
  • sjpz0124
  • sjpz0124
  • 2015年07月17日 17:33
  • 3005

数据结构--七大查找算法总结

阅读目录 1. 顺序查找2. 二分查找3. 插值查找4. 斐波那契查找5. 树表查找6. 分块查找7. 哈希查找   查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本...
  • sayhello_world
  • sayhello_world
  • 2017年08月15日 21:06
  • 5546

Java 查找算法

二分查找 Hash表 二叉树 B Tree
  • three_man
  • three_man
  • 2015年07月08日 19:49
  • 12760

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

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

常见查找算法总结

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

常见查找算法(Java实现)

查找的性能分析: 对于查找算法而言,常用“其关键字和给定值进行过比较的记录个数的平均值”作为衡量查找算法的依据。 定义:为了确定记录在查找表中的位置,需要和给定的值进行比较的关键字个数的期望值称为...
  • wqc_CSDN
  • wqc_CSDN
  • 2016年09月29日 17:33
  • 4029
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:五种查找算法总结
举报原因:
原因补充:

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