【算法数据结构Java实现】折半查找
生活随笔
收集整理的這篇文章主要介紹了
【算法数据结构Java实现】折半查找
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.背景
? ? ? ?以一個(gè)題目為例,一個(gè)整數(shù)x是一組按大小順序排列好的數(shù)列中的一個(gè)數(shù),我們要找到x在數(shù)列中的索引位置。
比如按從小到大排列的數(shù)列:
-3,-2,0,4,5,7,12,64
我們要找到數(shù)字7的位置,如果是線性查找,時(shí)間復(fù)雜度是O(n),如果用折半查找的話,時(shí)間復(fù)雜度是O(log(n)),因?yàn)槊看握郯?#xff0c;計(jì)算量少一半,所以取對(duì)數(shù)。
2.代碼
package Algorithm_analysis;public class Bisearch {static int[] array={-3,-2,0,4,5,7,12,64}; public static void main(String args[]){int left=0;int right=array.length;int center=0;int k=7;while(left<=right){center=(right+left)/2;if ((array[center]-k)==0){System.out.print(center);break;}else{if((array[center]-k)>0){right=center;}else{left=center;}}}} }//輸出結(jié)果7/********************************
* 本文來(lái)自博客 ?“李博Garvin“
* 轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/buptgshengod
******************************************/
總結(jié)
以上是生活随笔為你收集整理的【算法数据结构Java实现】折半查找的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【算法数据结构Java实现】时间复杂度为
- 下一篇: 【算法数据结构Java实现】欧几里得算法