前言:
眼前各位老铁们对“c语言折半查找”大体比较关怀,大家都想要了解一些“c语言折半查找”的相关资讯。那么小编同时在网络上搜集了一些有关“c语言折半查找””的相关内容,希望姐妹们能喜欢,同学们一起来学习一下吧!#c语言#
#与ChatGPT的有趣对话#
你觉得 GPT 写的代码有问题吗?欢迎留言讨论
Q:使用 C++ 实现二分查找
A:以下是使用 C++ 实现二分查找的示例代码:
#include <iostream>#include <vector>int binarySearch(std::vector<int>& nums, int target) { int left = 0; int right = nums.size() - 1; while (left <= right) { int mid = (left + right) / 2; if (nums[mid] == target) { return mid; } else if (nums[mid] < target) { left = mid + 1; } else { right = mid - 1; } } return -1;}int main() { std::vector<int> nums = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int target = 6; int index = binarySearch(nums, target); if (index != -1) { std::cout << "Target found at index " << index << std::endl; } else { std::cout << "Target not found" << std::endl; } return 0;}
在上面的代码中,我们定义了一个 binarySearch 函数,它采用一个整数数组和一个目标值作为输入,并返回目标值在数组中的索引(如果存在),否则返回 -1。
函数中使用两个变量 left 和 right 分别表示数组的左边界和右边界。在每次循环中,计算数组中间的索引 mid,并将其与目标值进行比较。如果中间值等于目标值,则返回中间索引。如果中间值小于目标值,则将 left 更新为 mid + 1,因为目标值在右侧。如果中间值大于目标值,则将 right 更新为 mid - 1,因为目标值在左侧。循环继续进行,直到 left 大于 right,表示目标值不在数组中。
在主函数中,我们定义了一个整数数组和目标值,并调用 binarySearch 函数。如果函数返回值不等于 -1,则打印目标值在数组中的索引。否则,打印 "Target not found"。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #c语言折半查找