zoukankan      html  css  js  c++  java
  • 对二分法的理解以及结对编程情况

    一. 二分法思想

    1. 要求

    二分法要求线性表必须采用顺序存储结构,表中元素要按关键字有序排列。

    2. 时间复杂度及分析体会

    最好情况:1次

    最坏情况:O(log n)

    这种算法是一种典型的分治的策略,并且这种算法很利于理解,它利用了元素之间的次序关系。相对顺序查找这种方法的效率较高,它能在大多数的情况,例如数据量很大,并且有序的时候,实现更快的数据查找功能,也是比较常用且易于想到的一种算法实现。

    3. 代码

    #include <iostream>
    using namespace std;
    int main(){
     int n,x;
     cin >> n;
     if(1<=n<=100){
      int shuzu[n];
      for(int i=0;i<n;i++){
          cin >> shuzu[i];
      }
      cin >> x;
      int left = 0;
      int right = n-1;
      int num = 0;
      while(left<=right){
       num++;
       int mid = (left+right)/2;
       if(x==shuzu[mid]){
        cout << mid << endl;
           cout << num << endl;
           return 0;
       }
       else if(x < shuzu[mid]){
           right = mid - 1;
       }
       
       else if(x > shuzu[mid]){
         left =  mid+1;
       } 
       
      }
      cout << "-1"<<endl;
      cout << num << endl;
     }
     return 0;
    }

    二. 结对编程情况

    以前也没有结对编程过,此次结对编程,我发现两个人一起可以提供更多的思路,并且一个人敲代码,一个人纠正并且完善代码的规范性。两个人也可以在编程的过程中共同进步,交流想法。可能有时候会出现两个人思路不同风格不同的情况,这样可以帮助两个人更好的拓展另一个思路,了解对方对某一个题目的理解,以及对方的编程思想。

  • 相关阅读:
    2019/5/15 写题总结
    CodeForces 804C Ice cream coloring
    CodeForces 367 C Sereja and the Arrangement of Numbers 欧拉回路
    CodeForces 464 B Restore Cube
    CodeForces 402 E Strictly Positive Matrix
    CodeForces 628 D Magic Numbers 数位DP
    CodeForces 340E Iahub and Permutations 错排dp
    CodeForces 780 E Underground Lab
    BZOJ 1010 [HNOI2008]玩具装箱toy 斜率优化dp
    CodeForces 715B Complete The Graph 特殊的dijkstra
  • 原文地址:https://www.cnblogs.com/Ygrittee/p/9812186.html
Copyright © 2011-2022 走看看