C语言编写程序,随机生成1000个在指定值域内的整数;分别用顺序查找法、折半查找法进行查找
时间: 2025-01-01 11:35:24 浏览: 62
在C语言中,你可以使用`rand()`函数和`srand()`函数来生成指定范围内的随机整数。首先,你需要包含头文件`<stdio.h>`和`<stdlib.h>`,然后初始化随机数种子以获得更随机的结果。以下是基本步骤:
1. 定义生成随机数的函数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int generate_random(int min, int max) {
return min + rand() % (max - min + 1);
}
```
2. 生成并存储1000个随机数:
```c
#define NUM_ITEMS 1000
int main() {
srand(time(0)); // 初始化随机数种子
int numbers[NUM_ITEMS];
for (int i = 0; i < NUM_ITEMS; ++i) {
numbers[i] = generate_random(0, 100); // 假设你要的是0到100的整数
}
// ... 接下来的查找算法部分 ...
return 0;
}
```
接下来,我们可以添加顺序查找和二分查找的实现:
**顺序查找法(线性查找)**:
```c
// 顺序查找函数
int linear_search(int array[], int target, int size) {
for (int i = 0; i < size; ++i) {
if (array[i] == target)
return i;
}
return -1; // 如果没找到,返回-1
}
// 在数组numbers中查找目标值
int search_value(int value, int* numbers, int num_items) {
return linear_search(numbers, value, num_items);
}
```
**折半查找法(二分查找)**:
```c
// 为了便于二分查找,数组需要排序(这里假设已排序)
void sort_array(int array[], int size) { /* 实现插入排序或其他排序算法 */ }
// 二分查找函数
int binary_search(int array[], int target, int low, int high) {
while (low <= high) {
int mid = low + (high - low) / 2;
if (array[mid] == target)
return mid;
else if (array[mid] < target)
low = mid + 1;
else
high = mid - 1;
}
return -1;
}
// 对有序数组numbers进行二分查找
int search_value_binary(int value, int* numbers, int num_items) {
sort_array(numbers, num_items);
return binary_search(numbers, value, 0, num_items - 1);
}
```
阅读全文
相关推荐

















