查找

顺序查找同叫线性查找

有序查找包括:折半查找法、插值查找(按比例查找)、斐波那契查找(黄金分割法查找)
无序查找:二叉排序树

顺序查找

原理是让关键字与队列中的数从最后一个开始逐个比较,直到找出与给定关键字相同的数为止,它的缺点是效率低下。

  • 必须是顺序

  • 要进行顺序查找,则线性表既可以以顺序方式存储,也可以链式方式存储;

  • 若表中元素个数为n,则顺序查找的平均比较次数为(n+1)/2

    二分查找 (别称:折半查找)

  • 必须以顺序存储结构

  • 必须按关键字大小有序排序

  • 表必须有序,且表只能以顺序方式存储

  • 对线性表进行二分查找时,要求线性表必须以链接方式存储,且数据元素有序.换一句话说,适用于折半查找的表的存储方式及元素排列要求为顺序方式存储,元素有序。

  • 要进行折半查询,则线性表必须以顺序方式存储,且数据已按递增或递减顺序排好;

  • 若表中元素个数为n,折半查找的平均比较次数为log2(n+1)

  • 折半查找的时间复杂性为O(logn)

    分块查找 (别称:索引顺序查找)

分块查找是折半查找和顺序查找的一种改进方法

  • 只要求索引表是有序的,对块内节点没有排序要求,因此特别适合于节点动态变化的情况。

  • 数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块。

  • 当采用分快查找时,数据的组织方式为数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块

posted @ 2017-11-29 11:15  flymey  阅读(183)  评论(0编辑  收藏