查找
程序员文章站
2022-07-12 09:10:30
...
二分查找
二分搜索,即在有序数组中,查找某一特定元素的搜索。它从中间的元素开始,如果中间的元素是要找的元素,则返回;若中间元素小于要找的元素,则要找的元素一定在大于中间元素的那一部分,那只需搜索那部分即可;反之搜索小于中间元素的部分即可。重复以上步骤,直到找到或确认该元素不存在为止。
func binarySearch(nums: [Int], target: Int) -> Bool {
var left = 0, mid = 0, right = nums.count - 1
while left <= right {
mid = (right - left) / 2 + left
let midNum = nums[mid]
if midNum == target {
return true
} else if midNum < target {
left = mid + 1
} else {
right = mid - 1
}
}
return false
}