c++二分搜索算法测试用例
时间: 2024-09-19 16:09:06 浏览: 43
二分搜索算法是一种高效的查找算法,适用于有序数组。它的工作原理是从中间元素开始,如果目标值大于中间元素,则在右半部分继续查找;如果目标值小于中间元素,则在左半部分查找;直到找到目标值或搜索范围为空。以下是几个常见的C++二分搜索算法的测试用例:
1. 测试空数组:
```cpp
void testEmptyArray() {
int arr[] = {};
int target = 5;
bool found = binarySearch(arr, target, sizeof(arr) / sizeof(arr[0]));
assert(!found); // 返回false,因为数组中不存在目标值
}
```
2. 查找存在元素:
```cpp
void testExistence() {
int arr[] = {1, 3, 5, 7, 9};
int target = 5;
bool found = binarySearch(arr, target, sizeof(arr) / sizeof(arr[0]));
assert(found); // 返回true,因为5在数组中
}
```
3. 查找不存在元素:
```cpp
void testNonexistence() {
int arr[] = {1, 3, 5, 7, 9};
int target = 4;
bool found = binarySearch(arr, target, sizeof(arr) / sizeof(arr[0]));
assert(!found); // 返回false,因为4不在数组中
}
```
4. 非递增数组:
```cpp
void testNonIncreasing() {
int arr[] = {5, 3, 1, 7, 9};
int target = 6;
bool found = binarySearch(arr, target, sizeof(arr) / sizeof(arr[0]));
assert(!found); // 因为数组未排序,搜索会失败
}
```
阅读全文