二分查找的基本思想是將n個(gè)元素分成大致相等的兩部分,去a[n/2]與x做比較,如果x=a[n/2],則找到x,算法中止;如果x<a[n/2],則只要在數(shù)組a的左半部分繼續(xù)搜索x,如果x>a[n/2],則只要在數(shù)組a的右半部搜索x.
時(shí)間復(fù)雜度無(wú)非就是while循環(huán)的次數(shù)!
總共有n個(gè)元素,
漸漸跟下去就是n,n/2,n/4,....n/2^k,其中k就是循環(huán)的次數(shù)
由于你n/2^k取整后>=1
即令n/2^k=1
可得k=log2n,(是以2為底,n的對(duì)數(shù))
所以時(shí)間復(fù)雜度可以表示O()=O(logn)