已知一有序的序列{1,3,5,7,9},采用顺序查找和折半法分别查找3和6。
时间: 2023-04-17 18:00:36 浏览: 159
顺序查找:从序列的第一个元素开始,依次比较每个元素,直到找到目标元素或者遍历完整个序列。对于查找3,需要比较1、3,找到了目标元素3;对于查找6,需要比较1、3、5、7、9,遍历完整个序列后未找到目标元素6。
折半法:首先确定序列的中间位置,将目标元素与中间位置的元素进行比较,如果相等则找到目标元素,如果目标元素比中间位置的元素小,则在左半部分继续查找,否则在右半部分继续查找,直到找到目标元素或者左右两部分都没有目标元素。对于查找3,首先将序列分为{1,3,5}和{7,9}两部分,中间位置为3,目标元素与中间位置的元素相等,找到目标元素3;对于查找6,首先将序列分为{1,3,5}和{7,9}两部分,中间位置为5,目标元素比中间位置的元素小,在左半部分{1,3,5}中继续查找,中间位置为3,目标元素比中间位置的元素大,在右半部分{5}中继续查找,未找到目标元素6。
相关问题
已知一个有7个数据元素的有序顺序表,其关键字为{3,18,25,37,69,87,99}。给出用折半查找方法查找关键字值18的查找过程。
折半查找,也叫二分查找,是一种针对有序顺序表的查找算法。
在本题中,有序顺序表的关键字为{3,18,25,37,69,87,99},要查找的关键字为18。下面是查找过程:
1. 将查找区间的左右端点分别设为low和high,初始时low=0,high=6(表的下标从0开始)。
2. 计算中间位置mid=(low+high)/2=(0+6)/2=3。
3. 比较关键字18与表中第mid个元素的关键字25,由于18小于25,所以18可能在表的左半部分,将high赋值为mid-1=2。
4. 计算新的中间位置mid=(low+high)/2=(0+2)/2=1。
5. 比较关键字18与表中第mid个元素的关键字18,由于相等,查找成功,返回1。
由此可见,折半查找算法查找关键字18的过程为:low=0, high=6, mid=3; low=0, high=2, mid=1; 找到了关键字为18的元素,返回下标1。
已知一个有序表R[1..12]为{12,18,20,25,29,32,40,62,83,90,95,98}。 (1)当折半查找值为29和90的元素时,分别需要多少次比较才能查找成功(提示:画出折半查找的判定树)? (2)若采用顺序查找时,分别需要多少次比较才能查找成功?
好的,我明白了,我会根据您的问题进行回答。
首先,我们来看第一个问题,使用折半查找算法查找值为29和90的元素需要多少次比较才能查找成功。
对于折半查找算法,它的时间复杂度为 O(log n),其中 n 为有序表的元素个数。在本题中,n=12。
对于值为29的元素,折半查找的过程如下:
1. 将有序表R[1..12]的中间位置mid=6的元素32与要查找的元素29进行比较,发现32>29,因此要查找的元素在左半部分(即R[1..5]);
2. 对R[1..5]继续折半查找,得到mid=2的元素20,发现20<29,因此要查找的元素在右半部分(即R[3..5]);
3. 对R[3..5]继续折半查找,得到mid=4的元素29,查找成功。
因此,查找值为29的元素需要3次比较。
对于值为90的元素,折半查找的过程如下:
1. 将有序表R[1..12]的中间位置mid=6的元素32与要查找的元素90进行比较,发现32<90,因此要查找的元素在右半部分(即R[7..12]);
2. 对R[7..12]继续折半查找,得到mid=10的元素95,发现95>90,因此要查找的元素在左半部分(即R[7..9]);
3. 对R[7..9]继续折半查找,得到mid=8的元素83,发现83<90,因此要查找的元素在右半部分(即R[9..9]);
4. 对R[9..9]继续折半查找,得到mid=9的元素90,查找成功。
因此,查找值为90的元素需要4次比较。
接下来,我们来看第二个问题,使用顺序查找算法查找值为29和90的元素需要多少次比较才能查找成功。
对于顺序查找算法,它的时间复杂度为 O(n),其中 n 为有序表的元素个数。在本题中,n=12。
对于值为29的元素,顺序查找的过程如下:
1. 从R[1]开始,依次与要查找的元素29进行比较,直到找到为止。
因此,查找值为29的元素需要5次比较。
对于值为90的元素,顺序查找的过程如下:
1. 从R[1]开始,依次与要查找的元素90进行比较,直到找到为止。
因此,查找值为90的元素需要12次比较。
综上所述,折半查找比顺序查找更为高效,尤其是对于大规模数据的查找。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)