【算法数据结构Java实现】折半查找
生活随笔
收集整理的這篇文章主要介紹了
【算法数据结构Java实现】折半查找
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.背景
? ? ? ?以一個題目為例,一個整數x是一組按大小順序排列好的數列中的一個數,我們要找到x在數列中的索引位置。
比如按從小到大排列的數列:
-3,-2,0,4,5,7,12,64
我們要找到數字7的位置,如果是線性查找,時間復雜度是O(n),如果用折半查找的話,時間復雜度是O(log(n)),因為每次折半,計算量少一半,所以取對數。
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;}}}} }//輸出結果7/********************************
* 本文來自博客 ?“李博Garvin“
* 轉載請標明出處:http://blog.csdn.net/buptgshengod
******************************************/
總結
以上是生活随笔為你收集整理的【算法数据结构Java实现】折半查找的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【算法数据结构Java实现】时间复杂度为
- 下一篇: 【算法数据结构Java实现】欧几里得算法