(12)--3.2二分检索算法及分析.pptVIP

  • 11
  • 0
  • 约2.47千字
  • 约 17页
  • 2024-03-20 发布于江苏
  • 举报

二分检索

问题的描述

非降次序排列

元素表a1,a2,…,an,

要求判定某给定的元素x是否在该表中出现。

若是,则找出x在表中的位置并返回其所在下标

若非,则返回0值。

有序

顺序查找

分治策略

最多比较n次

分治求解策略分析:

定义问题的形式描述:I=(n,a1,a2,…,an,x)

问题分解:选取下标k,由此将I分解为3个子问题:

I1=(k-1,a1,a2,…,ak-1,x)

I2=(1,ak,x)

I3=(n-k,ak+1,ak+2,…,an,x)

若ak=x,则有解k,对I1、I3不用再求解;否则,

若xak,则只在I1中求解,对I3不用求解;

若xak,则只在I3中求解,对I1不用求解;

I1、I3上的求解可再次采用分治方法划分后求解

直到子问题有1个元素,比较得到最后结论。

k的选择策略不同,导致不同的检索算法:

二分检索:

Fibonacci检索:

线性插值检索:

随机检索:1到n中的随机数

二分检索算法伪代码

procedureBINSRCH(A,n,x,j)

integerlow,high,mid,j,n;

low←1;high←n;

whilelow≤highdo

mi

文档评论(0)

1亿VIP精品文档

相关文档