a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 82|回复: 0

[公共基础知] 2011计算机等考二级公共基础知识讲义:第1章(7)

[复制链接]
发表于 2012-7-31 21:44:12 | 显示全部楼层 |阅读模式
1.7 查找技术   查找:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素。6 U) F6 t$ ^. o: q1 [
  查找结果:(查找成功:找到;查找不成功:没找到。)
$ i9 g9 G& S/ r/ J" e/ c/ n9 l  平均查找长度:查找过程中关键字和给定值比较的平均次数。
$ O+ V& X8 z4 F) x- e: h+ T  1、顺序查找
6 t$ v: r4 W- x! @  基本思想:从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查到所要找的元素为止。否则就是表中没有要找的元素,查找不成功。
) t, I. N" ^. o+ v  在平均情况下,利用顺序查找法在线性表中查找一个元素,大约要与线性表中一半的元素进行比较,最坏情况下需要比较n次。, H1 s6 N, ~& f; `% ^
  顺序查找一个具有n个元素的线性表,其平均复杂度为O(n)。
: m: _' g- D$ G7 x7 d. U0 X  Z8 \  下列两种情况下只能采用顺序查找:0 W# J# @. I% V+ d! t
  1)如果线性表是无序表(即表中的元素是无序的),则不管是顺序存储结构还是链式存储结构,都只能用顺序查找。
( ^5 P8 b! o- X+ h( \  2)即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。
5 `& l, ^& Q! s3 P  2、二分法查找
9 ^& e, |! F9 E! Q% F5 J5 [  思想:先确定待查找记录所在的范围,然后逐步缩小范围,直到找到或确认找不到该记录为止。  e/ s; p  C% f& ~5 o5 W* q
  前提:必须在具有顺序存储结构的有序表中进行。) Y7 y  [$ `0 ?% }; v; S8 @
  查找过程:
3 V& m, Q* |+ {$ ?0 C2 B  1)若中间项(中间项mid=(n-1)/2,mid的值四舍五入取整)的值等于x,则说明已查到;+ Z) k, Z* `) F' {$ f7 d
  2)若x小于中间项的值,则在线性表的前半部分查找;4 L8 K0 n3 Z  j* ]1 P9 J2 g3 \
  3)若x大于中间项的值,则在线性表的后半部分查找。
* a7 C* g" r) w2 ^4 W% _6 [9 O) Z' [  特点:比顺序查找方法效率高。最坏的情况下,需要比较log2n次。$ ^# c2 u, t8 s1 \
  *:二分法查找只适用于顺序存储的线性表,且表中元素必须按关键字有序(升序)排列。对于无序线性表和线性表的链式存储结构只能用顺序查找。在长度为n的有序线性表中进行二分法查找,其时间复杂度为O(log2n)。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-21 22:30 , Processed in 0.225501 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表