对二分算法的理解及结对编程情况
Posted ricardoy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对二分算法的理解及结对编程情况相关的知识,希望对你有一定的参考价值。
一、对二分算法理解
二分算法,又称折半算法,是应用分治策略的典型例子。二分查找主要对有序序列进行对所指定数字的查找,通过不断缩小搜查范围,在比较中间的数后对左右两个数组进行相同操作,以得到最终的带查找数字。时间复杂度logn,对数组较大时能显著提高程序效率。
二、算法代码
#include <iostream>
using namespace std;
int main(){
int n,x;
cin >> n;
if(1<=n<=100){
int a[n];
for(int i=0;i<n;i++){
cin >> a[i];
}
cin >> x;
int left = 0;
int right = n-1;
int num = 0;
while(left<=right){
num++;
int mid = (left+right)/2;
if(x==a[mid]){
cout << mid << endl;
cout << num << endl;
return 0;
}
else if(x < a[mid]){
right = mid - 1;
}
else if(x > a[mid]){
left = mid+1;
}
}
cout << "-1"<<endl;
cout << num << endl;
}
return 0;
}
三、结对编程情况
通过与队友的合作,在敲代码的过程中减少了很多不必要的错误,同时也提高了思维能力,拓展另一个思路。
以上是关于对二分算法的理解及结对编程情况的主要内容,如果未能解决你的问题,请参考以下文章