第7章查找 本章中介绍下列主要内容: 静态査找表及査找算法:顺序査找、折半査找 ●动态査找表及查找算法:二叉排序树 哈希表及查找算法 西加大学数学与信息学院
ぜ7【 ᴔឭ ᴀゴЁҟ㒡ϟ߫Џ㽕ݙᆍ˖ l 䴭ᗕᶹᡒ㸼ঞᶹᡒㅫ⊩˖乎ᑣᶹᡒǃᡬञᶹᡒ l ࡼᗕᶹᡒ㸼ঞᶹᡒㅫ⊩˖Ѡঝᥦᑣᷥ l જᏠ㸼ঞᶹᡒㅫ⊩ ߎ䗔
概念 72静态杳找 73动态查找 74哈希表 西加大学数学与信息学院
7.1 ᴀὖᗉ 7.2 䴭ᗕᶹᡒ 7.3 ࡼᗕᶹᡒ 7.4 જᏠ㸼
7基本概念 查找表用于查找的数据元素集合称为查找表。查 找表由同一类型的数据元素(或记录)构成。 静态查找表若只对查找表进行如下两种操作: (1)在查找表中查看某个特定的数据元素是否在查找 表中,(2)检索某个特定元素的各种属性,则称这类 查找表为静态查找表。静态查找表在查找过程中查找 表本身不发生变化。对静态査找表进行的查找操作称 为静态查找。 西加大学数学与信息学院
7.1 ᴀὖᗉ ᶹᡒ㸼 ⫼Ѣᶹᡒⱘ᭄ܗ㋴䲚ড়⿄Ўᶹᡒ㸼DŽᶹ ᡒ㸼⬅ৠϔ㉏ൟⱘ᭄ܗ㋴˄䆄ᔩ˅ᵘ៤DŽ 䴭ᗕᶹᡒ㸼 㢹াᇍᶹᡒ㸼䖯㸠བϟϸ⾡᪡˖ ˄1˅ᶹᡒ㸼ЁᶹⳟᶤϾ⡍ᅮⱘ᭄ܗ㋴ᰃ৺ᶹᡒ 㸼Ёˈ˄2˅Ẕ㋶ᶤϾ⡍ᅮܗ㋴ⱘ⾡ሲᗻˈ߭⿄䖭㉏ ᶹᡒ㸼Ў䴭ᗕᶹᡒ㸼DŽ䴭ᗕᶹᡒ㸼ᶹᡒ䖛Ёᶹᡒ 㸼ᴀ䑿ϡথ⫳ব࣪DŽᇍ䴭ᗕᶹᡒ㸼䖯㸠ⱘᶹᡒ᪡⿄ Ў䴭ᗕᶹᡒDŽ
动态查找表若在查找过程中可以将查找表中不存 在的数据元素插入,或者从查找表中删除某个数据元 素,则称这类查找表为动态查找表。动态查找表在查 找过程中查找表可能会发生变化。对动态查找表进行 的查找操作称为动态查找。 关键字是数据元素中的某个数据项。唯一能标识 数据元素(或记录)的关键字,即每个元素的关键字 值互不相同,我们称这种关键字为主关键字;若查找 表中某些元素的关键字值相同,称这种关键字为次关 键字。例如,银行帐户中的帐号是主关键字,而姓名 是次关键字。 西加大学数学与信息学院 网囧
ࡼᗕᶹᡒ㸼 㢹ᶹᡒ䖛Ёৃҹᇚᶹᡒ㸼Ёϡᄬ ⱘ᭄ܗ㋴ᦦܹˈ㗙Ңᶹᡒ㸼Ёߴ䰸ᶤϾ᭄ܗ ㋴ˈ߭⿄䖭㉏ᶹᡒ㸼Ўࡼᗕᶹᡒ㸼DŽࡼᗕᶹᡒ㸼ᶹ ᡒ䖛Ёᶹᡒ㸼ৃ㛑Ӯথ⫳ব࣪DŽᇍࡼᗕᶹᡒ㸼䖯㸠 ⱘᶹᡒ᪡⿄ЎࡼᗕᶹᡒDŽ ݇䬂ᄫ ᰃ᭄ܗ㋴ЁⱘᶤϾ᭄乍DŽଃϔ㛑ᷛ䆚 ᭄ܗ㋴˄䆄ᔩ˅ⱘ݇䬂ᄫˈे↣Ͼܗ㋴ⱘ݇䬂ᄫ ؐѦϡⳌৠˈ៥Ӏ⿄䖭⾡݇䬂ᄫЎЏ݇䬂ᄫ˗㢹ᶹᡒ 㸼Ёᶤѯܗ㋴ⱘ݇䬂ᄫؐⳌৠˈ⿄䖭⾡݇䬂ᄫЎ݇ 䬂ᄫDŽ՟བˈ䫊㸠Ꮴ᠋ЁⱘᏤোᰃЏ݇䬂ᄫˈ㗠ྦྷৡ ᰃ݇䬂ᄫDŽ
查找在数据元素集合中査找满足某种条件的数据 元素的过程称为查找。最简单且最常用的查找条件是 “关键字值等于某个给定值”,在査找表搜索关键字等 于给定值的数据元素(或记录)。若表中存在这样的 记录,则称查找成功,此时的查找结果应给出找到记 录的全部信息或指示找到记录的存储位置;若表中不 存在关键字等于给定值的记录,则称查找不成功,此 时査找的结果可以给出一个空记录或空指针。若按主 关键字査找,査找结果是唯一的;若按次关键字查 找,结果可能是多个记录,即结果可能不唯一。 西加大学数学与信息学院 网囧
ᶹᡒ ᭄ܗ㋴䲚ড়Ёᶹᡒ⒵䎇ᶤ⾡ᴵӊⱘ᭄ ܗ㋴ⱘ䖛⿄ЎᶹᡒDŽ᳔ㅔऩϨ᳔ᐌ⫼ⱘᶹᡒᴵӊᰃ ³݇䬂ᄫؐㄝѢᶤϾ㒭ᅮؐ´ˈᶹᡒ㸼᧰㋶݇䬂ᄫㄝ Ѣ㒭ᅮؐⱘ᭄ܗ㋴˄䆄ᔩ˅DŽ㢹㸼Ёᄬ䖭ḋⱘ 䆄ᔩˈ߭⿄ᶹᡒ៤ࡳˈℸᯊⱘᶹᡒ㒧ᵰᑨ㒭ߎᡒࠄ䆄 ᔩⱘܼ䚼ֵᙃᣛ⼎ᡒࠄ䆄ᔩⱘᄬټԡ㕂˗㢹㸼Ёϡ ᄬ݇䬂ᄫㄝѢ㒭ᅮؐⱘ䆄ᔩˈ߭⿄ᶹᡒϡ៤ࡳˈℸ ᯊᶹᡒⱘ㒧ᵰৃҹ㒭ߎϔϾぎ䆄ᔩぎᣛ䩜DŽ㢹ᣝЏ ݇䬂ᄫᶹᡒˈᶹᡒ㒧ᵰᰃଃϔⱘ˗㢹ᣝ݇䬂ᄫᶹ ᡒˈ㒧ᵰৃ㛑ᰃϾ䆄ᔩˈे㒧ᵰৃ㛑ϡଃϔDŽ