对二分算法的理解及结对编程情况

一、对二分算法理解

二分算法,又称折半算法,是应用分治策略的典型例子。二分查找主要对有序序列进行对所指定数字的查找,通过不断缩小搜查范围,在比较中间的数后对左右两个数组进行相同操作,以得到最终的带查找数字。时间复杂度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;
}
三、结对编程情况
通过与队友的合作,在敲代码的过程中减少了很多不必要的错误,同时也提高了思维能力,拓展另一个思路。

猜你喜欢

转载自www.cnblogs.com/RicardoY/p/9822411.html