码迷,mamicode.com
首页 > 其他好文 > 详细

对二分法的感想

时间:2018-10-13 15:37:48      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:nbsp   顺序   return   数组   方法   次方   int   pac   cout   

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

 

对二分法的感想

标签:nbsp   顺序   return   数组   方法   次方   int   pac   cout   

原文地址:https://www.cnblogs.com/chenhanwu/p/9782938.html

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