力扣,704题:
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1
第一种方法,for循环直接遍历整个数组,找到和目标值相等的数并且返回下标,
时间复杂度是O(n)
class Solution {
public:
int search(vector<int>& nums, int target) {
for (int i = 0;i < nums.size(); i++)
{
if(nums[i] == target)
{
return i;
}
}
return -1;
}
};
第二种方法,二分查找法。
作为一个小白其实我都不知道二分查找为啥要叫这个名,所以我查了一下,感觉理解一下这个名字方便我记忆。
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
使用二分查找的前提:
- 给的是