《数据结构与算法 .ppt》由会员分享,可在线阅读,更多相关《数据结构与算法 .ppt(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章第二章 数据结构与算法数据结构与算法2.7 2.7 查找技术查找技术查找技术查找技术 1.1.顺序查找顺序查找vv顺序查找又称为顺序搜索,顺序查找一般是指在线性表中查顺序查找又称为顺序搜索,顺序查找一般是指在线性表中查找指定的元素,其基本方法如下:找指定的元素,其基本方法如下:vv 从线性表的每一个元素开始,因此将线性表中的元素与被从线性表的每一个元素开始,因此将线性表中的元素与被查元素进行比较,若相等则表示找到;若线性表中所有的查元素进行比较,若相等则表示找到;若线性表中所有的元素都与被查元素进行了比较但都不相等,则表示线性表元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找
2、的元素。中没有要找的元素。vv 在进行顺序查找中,如果线性表中的第一个元素就是别在进行顺序查找中,如果线性表中的第一个元素就是别查找元素,则只需做依次比较就查找成功,查找效率很高;查找元素,则只需做依次比较就查找成功,查找效率很高;但如果被查的元素是线性表中的最后但如果被查的元素是线性表中的最后 一个元素,或者被查一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性元素根本不在线性表中,则为了查找这个元素需要与线性表中所有的元素进行比较,这是顺序查找的最坏情况。在表中所有的元素进行比较,这是顺序查找的最坏情况。在平均情况下,利用顺序查找发在线性表中查找一个元素,平均情况下,利用
3、顺序查找发在线性表中查找一个元素,大约要与线性表中一半的元素进行比较。大约要与线性表中一半的元素进行比较。vv 第二章第二章 数据结构与算法数据结构与算法vv由此可以看出,对于大的线性表来说,顺序查找的效率是很由此可以看出,对于大的线性表来说,顺序查找的效率是很底的。虽然顺序查找的效率不高,但在下列两种情况也只能底的。虽然顺序查找的效率不高,但在下列两种情况也只能采用顺序查找。采用顺序查找。vv(1)(1)如果线性表为无序表,则不管是顺序存储结构还是如果线性表为无序表,则不管是顺序存储结构还是链式存储结构,都只能用顺序查找。链式存储结构,都只能用顺序查找。vv(2)(2)即使是有序线性表,如果
4、采用链式存储结构,也只即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。能用顺序查找。第二章第二章 数据结构与算法数据结构与算法vv2.2.二分查找二分查找vv 二分查找只适用于顺序存储的有序表。在此所说的二分查找只适用于顺序存储的有序表。在此所说的有序表是指线性表中的元素按值非递减排列的。有序表是指线性表中的元素按值非递减排列的。vv 设有序线性表的长度为设有序线性表的长度为n n,被查元素为,被查元素为x x,则二分查,则二分查找的方法如下:找的方法如下:vv 将将x x与线性表的中间项进行比较;与线性表的中间项进行比较;vv 若中间项的值等于若中间项的值等于x x,则说明查到,查找结束;,则说明查到,查找结束;vv 若若x x小于中间项的值,则在线性表中的后半部分以小于中间项的值,则在线性表中的后半部分以相同的方法进行查找;相同的方法进行查找;vv 若若x x大于中间项的值,则在线性表的后半部分以相大于中间项的值,则在线性表的后半部分以相同的方法进行查找;同的方法进行查找;vv 这个过程一直进行到查找成功或子表长度为这个过程一直进行到查找成功或子表长度为0 0为止。为止。