添加 0704.二分查找.md C语言版本

This commit is contained in:
ArthurP
2021-08-28 19:05:02 +08:00
parent 1b1ccb1409
commit 7799a7712b

View File

@ -374,7 +374,7 @@ func search(nums: [Int], target: Int) -> Int {
} else if target > nums[middle] { } else if target > nums[middle] {
// 当目标在区间右侧,就需要更新左边的边界值,新区间为[middle + 1, right] // 当目标在区间右侧,就需要更新左边的边界值,新区间为[middle + 1, right]
left = middle + 1 left = middle + 1
} else { } else {
// 当目标就是在中间,则返回中间值的下标 // 当目标就是在中间,则返回中间值的下标
return middle return middle
} }
@ -450,6 +450,33 @@ impl Solution {
} }
``` ```
**C:**
```c
int search(int* nums, int numsSize, int target){
int left = 0;
int right = numsSize-1;
int middle = 0;
//若left小于等于right说明区间中元素不为0
while(left<=right) {
//更新查找下标middle的值
middle = (left+right)/2;
//此时target可能会在[left,middle-1]区间中
if(nums[middle] > target) {
right = middle-1;
}
//此时target可能会在[middle+1,right]区间中
else if(nums[middle] < target) {
left = middle+1;
}
//当前下标元素等于target值时返回middle
else if(nums[middle] == target){
return middle;
}
}
//若未找到target元素返回-1
return -1;
}
```
----------------------- -----------------------
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw) * 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)