二分法python代码
二分法也被称为二分查,是一种常见的搜索算法,其可以在有序的序列中查一定的目标值。以下是二分法的 Python 代码实现:```\ndef binary_search(sorted_list, target):\n left = 0\n right = len(sorted_list) - 1 while left <= right:\n mid = (left + right) // 2\n if sorted_list[mid] == target:\n return mid\n elif sorted_list[mid] < target:\n left = mid + 1\n else:\n right = mid - 1 return -1\n``n上述代码中, `sorted_list` 是已经排好序的列表, `target` 是要查的目标值。函数使用两个指针, `left` 和 `right` ,来指定搜索的范围。然后使用一个循环来重复执行以下步骤:
1. 计算出中间元素的索引, `mid` 。
2. 判断 `mid` 对应的元素是否等于目标值。如果等于,就返回该元素的索引。
3. 如果该元素小于目标值,则将搜索范围缩小到右侧部分,也就是将 `left` 置为 `mid + 1` 。
4. 如果该元素大于目标值,则将搜索范围缩小到左侧部分,也就是将 `right` 置为 `mid - 1` 。
5. 如果搜索范围内没有目标值,就返回 `-1` 。示例:```\nsorted_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]\ntarget = 5index = binary_search(sorted_list, target)if index != -1:\n print(f\"到目标值 {target} ,索引为 {index}\")\nelse:\n print(f\"未到目标值 {target}\")\n``n输出:```\n到目标值 5 ,索引为 4\n```。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论