定义一个长度为N的整型数组,数组元素为0~N-1之间的随机数,请定义线性查找函数, 并在主函数中调用该线性查找算法实现查找功能,并统计查找过程中,数据元素比较次数。
时间: 2024-03-22 22:36:50 浏览: 53
数组元素的排序和查找
好的,以下是代码实现:
```c++
#include <iostream>
#include <cstdlib> // 包含rand和srand函数
#include <ctime> // 包含time函数
using namespace std;
int linearSearch(int arr[], int n, int key, int& count)
{
for (int i = 0; i < n; i++) {
count++; // 记录比较次数
if (arr[i] == key)
return i;
}
return -1; // 如果没找到,返回-1
}
int main()
{
const int N = 10;
int arr[N];
srand(time(NULL)); // 初始化随机种子
for (int i = 0; i < N; i++) {
arr[i] = rand() % N; // 生成0~N-1之间的随机数
cout << arr[i] << " ";
}
cout << endl;
int key;
cout << "请输入要查找的元素:";
cin >> key;
int count = 0;
int index = linearSearch(arr, N, key, count);
if (index == -1)
cout << "查找失败!" << endl;
else
cout << "查找成功!元素下标为:" << index << endl;
cout << "比较次数为:" << count << endl;
return 0;
}
```
这里使用了一个`count`变量记录比较次数,同时使用了引用来将`count`变量传递给`linearSearch`函数,以便在函数内部更新比较次数。
阅读全文