zoukankan      html  css  js  c++  java
  • 对二分法的感想

    二分法通过对问题的规模不断缩半,从而使时间复杂度大大降低,在二分法思想中,最坏的情况k次,由2的k次方等于n,可知,最坏的情况下查找log n 次,时间复杂度相对普通的方法而言降低了,在处理大规模问题上就会有明显的好处,比如顺序查找时间复杂度O(n),而二分查找为O(log n) 。在编程的时候,组建一个编程小团队是一个不错的做法,可以相互讨论各种算法思想,思想碰撞,相互提出问题,相互解答,这会让我们更好地理解算法的根源,更好地去认识算法。

    比如c++中实现一个二分查找,前提是数组对象已经排好序的了。

     1 #include <iostream>
     2 using namespace std;
     3 int i=0;
     4 void binsearch(int a[],int b,int left,int right)
     5 {
     6     i++;  //此处的i用来计算查找的次数
     7     cout<<i<<endl;
     8     int mid=(left+right)/2;
     9     if(left==right&&a[mid]!=b)
    10     {
    11         cout<<"no"<<" "<<b<<endl;
    12         return;
    13     }
    14     if(a[mid]==b)
    15     {
    16         cout<<"yes"<<" "<<a[mid]<<endl;   
    17         return;
    18     } 
    19     else if(a[mid]>b)
    20         right=mid-1;
    21     else if(a[mid]<b)
    22         left=mid+1;
    23     binsearch(a,b,left,right);
    24 }
    25 
    26 int main()
    27 {
    28     int a[6]={1,3,4,8,9,13};
    29     binsearch(a,10,0,5);
    30 }
  • 相关阅读:
    前端开发-模块化开发框架RequireJS-1 初识requirejs
    需整理
    SSM
    iomanip
    new与delete使用方法
    分析setting源代码获取sd卡大小
    第一次正式小用Redis存储
    blob storage第一次亲密接触
    第一次使用ashx,被震惊
    Redis中的异步Async
  • 原文地址:https://www.cnblogs.com/chenhanwu/p/9782938.html
Copyright © 2011-2022 走看看