一组数据为[21,34,56,78,99,100,102,109,200],要求如下: (1)写出折半查找算法查找109的过程中所比较过的数据。 (2)写出折半查找算法查找20的过程中所比较过的数据
时间: 2023-10-26 09:41:15 浏览: 89
Java语言程序设计课件:数组.ppt
好的,我来回答你的问题。
(1) 折半查找算法查找109的过程中所比较过的数据依次为:[99, 102, 109]。
首先,算法将数据分成两半,取中间位置的值 78 进行比较,109 大于 78,因此查找范围缩小到右半部分。接着,算法将右半部分的数据再次分成两半,取中间位置的值 100 进行比较,109 大于 100,因此查找范围缩小到右半部分。最后,算法将右半部分的数据再次分成两半,取中间位置的值 102 进行比较,109 大于 102,因此查找范围缩小到右半部分。此时,109 等于 109,查找成功。
(2) 折半查找算法查找20的过程中所比较过的数据依次为:[56, 21]。
首先,算法将数据分成两半,取中间位置的值 78 进行比较,20 小于 78,因此查找范围缩小到左半部分。接着,算法将左半部分的数据再次分成两半,取中间位置的值 56 进行比较,20 小于 56,因此查找范围缩小到左半部分。最后,算法将左半部分的数据再次分成两半,取中间位置的值 34 进行比较,20 小于 34,因此查找范围缩小到左半部分。此时,数据中已经没有比 20 更小的元素,查找失败。
阅读全文