码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-10-20 18:34:02      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:for   name   情况   思路   序列   二分   范围   std   else   

一、对二分算法理解

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

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

标签:for   name   情况   思路   序列   二分   范围   std   else   

原文地址:https://www.cnblogs.com/RicardoY/p/9822411.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!