用c语言代码实现实验一 二分搜索算法 要求: 1.二分搜索算法的前提条件 2.数据集的生成,自动生成数组空间大小分别为100,1000,10000,100000的数据集 3.二分搜索算法的非递归实现 4.二分搜索算法的递归实现 5.二分搜索算法的在数据集上的测试性能的分析
时间: 2023-06-05 17:04:34 浏览: 90
1. 二分搜索算法的前提条件是:数据集必须是有序的。
2. 数据集的生成可以通过随机数的方式实现。生成一个长度为n的数组,可以使用以下代码:
int data[n];
srand(time(NULL)); // 设置随机数种子
for(int i=0; i<n; i++){
data[i] = rand() % n; // 生成0~n-1之间的随机数
}
sort(data, data + n); // 对数据集进行排序
3. 二分搜索算法的非递归实现:
int binarySearch(int data[], int n, int target){
int left = 0, right = n-1;
while(left <= right){
int mid = (left + right) / 2;
if(data[mid] == target){
return mid;
}
else if(data[mid] > target){
right = mid - 1;
}
else{
left = mid + 1;
}
}
return -1; // 没有找到目标元素
}
4. 二分搜索算法的递归实现:
int binarySearch(int data[], int left, int right, int target){
if(left > right){
return -1; // 没有找到目标元素
}
int mid = (left + right) / 2;
if(data[mid] == target){
return mid;
}
else if(data[mid] > target){
return binarySearch(data, left, mid-1, target);
}
else{
return binarySearch(data, mid+1, right, target);
}
}
5. 二分搜索算法在不同数据集上的测试性能的分析可以采用如下方法:
- 针对不同大小的数据集,分别生成数据并执行二分搜索算法。
- 记录算法的执行时间,并将结果输出。
- 对于相同大小的数据集,反复执行多次,记录算法的平均执行时间。
- 根据执行时间的结果,分析算法的时间复杂度和局限性。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)