c++生成随机数二分查找
时间: 2023-09-22 07:13:03 浏览: 113
详尽C++头文件库查找方便快捷
3星 · 编辑精心推荐
你可以使用 C 语言的标准库函数来生成随机数,并且使用二分查找算法进行查找。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 二分查找函数
int binary_search(int arr[], int left, int right, int target) {
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
}
else if (arr[mid] < target) {
left = mid + 1;
}
else {
right = mid - 1;
}
}
return -1; // 如果未找到目标数,则返回-1
}
int main() {
int arr[10], i, target;
// 生成随机数
srand(time(NULL));
for (i = 0; i < 10; i++) {
arr[i] = rand() % 100; // 生成0到99之间的随机数
}
// 排序数组(升序)
for (i = 0; i < 9; i++) {
for (int j = 0; j < 9 - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
printf("排序后的数组:");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 输入要查找的数
printf("请输入要查找的数:");
scanf("%d", &target);
// 调用二分查找函数
int index = binary_search(arr, 0, 9, target);
if (index == -1) {
printf("未找到该数\n");
}
else {
printf("找到该数,下标为 %d\n", index);
}
return 0;
}
```
这段代码首先使用 `srand` 函数结合 `time` 函数设置种子,然后通过 `rand` 函数生成随机数填充数组。之后对数组进行排序,并通过二分查找函数 `binary_search` 在排序后的数组中查找目标数。最后输出查找结果。注意,这里的二分查找算法要求数组是有序的。
阅读全文