算法第二章实验报告
Posted sasukelxq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法第二章实验报告相关的知识,希望对你有一定的参考价值。
实践题目:二分查找
问题描述:
输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。
算法描述:
while (left <= right) {
int middle = (left + right) / 2; //找到中间
t++; //增加搜索次数
if (key == a[middle])
{
cout << middle<<endl;
cout << t;
return middle; //找到要搜索的数 返回
}
if (key > a[middle])left = middle + 1; //如果要搜索的数比中间大则将左下表移动到原来中间的下一个
else { right = middle - 1; } //如果要搜索的数比中间小则将右下表移动到原来中间的上一个
int middle = (left + right) / 2; //找到中间
t++; //增加搜索次数
if (key == a[middle])
{
cout << middle<<endl;
cout << t;
return middle; //找到要搜索的数 返回
}
if (key > a[middle])left = middle + 1; //如果要搜索的数比中间大则将左下表移动到原来中间的下一个
else { right = middle - 1; } //如果要搜索的数比中间小则将右下表移动到原来中间的上一个
}
心得体会:
通过学习二分查找,使我对算法更感兴趣。与同学的交流,也增加了打代码的能力。
以上是关于算法第二章实验报告的主要内容,如果未能解决你的问题,请参考以下文章