对二分法的感想

Posted chenhanwu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对二分法的感想相关的知识,希望对你有一定的参考价值。

二分法通过对问题的规模不断缩半,从而使时间复杂度大大降低,在二分法思想中,最坏的情况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++;
 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 }

 

以上是关于对二分法的感想的主要内容,如果未能解决你的问题,请参考以下文章

二分法体会与结队感想

二分法思想体会和结队编程感想

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

leecode 278 数值溢出感想

IP通信实验感想

<<构建之法>>略读感想