讲述二分查找跟三分查找PPT
二分查找和三分查找都是高效的搜索算法,通常用于在有序数组中查找特定元素。它们的时间复杂度较低,因此在处理大量数据时表现良好。下面将详细介绍这两种查找算法。...
二分查找和三分查找都是高效的搜索算法,通常用于在有序数组中查找特定元素。它们的时间复杂度较低,因此在处理大量数据时表现良好。下面将详细介绍这两种查找算法。二分查找1. 基本思想二分查找(Binary Search)是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。2. 算法步骤初始化确定搜索范围的左右边界,通常是最小索引0和最大索引n-1,其中n为数组长度计算中间索引计算搜索范围的中间索引 mid = (left + right) / 2比较中间元素比较目标值与中间索引位置的元素3. 时间复杂度二分查找的时间复杂度为 O(log n),其中 n 是数组的长度。在最坏情况下,每次比较都会将搜索范围减半,因此需要进行 log2n 次比较才能找到目标值或确定目标值不存在。三分查找1. 基本思想三分查找(Ternary Search)是二分查找的一种扩展,用于在有序数组中查找某一特定元素。与二分查找不同,三分查找将搜索范围划分为三个部分,而不是两个部分。这种算法通常用于解决具有凸性或凹性的函数问题,如求解函数的最大值或最小值。2. 算法步骤初始化确定搜索范围的左右边界,通常是最小索引0和最大索引n-1,其中n为数组长度计算三分点将搜索范围划分为三个部分,计算两个三分点的索引。第一个三分点位于 left + (right - left) / 3,第二个三分点位于 right - (right - left) / 3比较中间元素比较目标值与三个点(left、mid1、mid2)的元素3. 时间复杂度三分查找的时间复杂度为 O(log n),其中 n 是数组的长度。与二分查找类似,三分查找每次比较都会将搜索范围缩小到原来的三分之一,因此需要进行 log3n 次比较才能找到目标值或确定目标值不存在。需要注意的是,三分查找通常用于解决具有特定性质的问题,如求解函数的最大值或最小值。在这些问题中,三分查找可能比二分查找更高效。然而,对于一般的搜索问题,二分查找通常是更常用且更简单的选择。