二分查詢的遞迴與非遞迴實現 Java版

2021-08-16 01:59:51 字數 700 閱讀 7266

/**

*遞迴實現二分查詢

*時間複雜度o(logn)

*前提:陣列有序

*如果找到target,返回相應的索引,未找到,返回-1**/

public class binarysearch

public static void main(string args) ;

int result=binarysearch(arr, 0, arr.length-1, 3);

system.out.println(result);

}/**

*迭代實現二分查詢

*o(logn),時間複雜度一樣,但是效能略好

*前提:陣列有序

*如果找到target,返回相應的索引,未找到,返回-1

*/public class binarysearch2

}return -1;   //找不到返回-1

}public static void main(string args) ;

int n=arr.length;

binarysearch2 search2=new binarysearch2();

int result=search2.binartsearch2(arr, n, 3);

system.out.println(result);}}

二分查詢 遞迴與非遞迴

最近做了一道題目,在弄清原理之後發現怎麼也過不去,找了幾個小時的bug,結果問題就出現在二分查詢的知識點上,暑假是有接觸過二分的題目,應該是沒有完全理解才會在昨天的那道題上碰釘子,藉此寫一下對二分的理解來鞏固鞏固以前的知識。一談起查詢,最先想到的無非是遍歷整組資料,複雜度為o n 但是對於一組有規律...

二分查詢演算法(遞迴與非遞迴實現)

二分查詢遞迴實現的原理 將陣列分為三部分,依次是中值 所謂的中值就是陣列中間位置的那個值 前,中值,中值後 將要查詢的值和陣列的中值進行比較,若小於中值則在中值前面找,若大於中值則在中值後面找,等於中值時直接返回。然後依次是乙個遞迴過程。遞迴查詢的 實現 遞迴方法實現二分查詢法.param arra...

Python實現二分查詢(遞迴與非遞迴)

二分查詢 每次能夠排除掉一半的資料,查詢的效率非常高,但是侷限性比較大。必須是有序序列才可以使用二分查詢。1.非遞迴演算法 def binary search lis,nun left 0 right len lis 1 while left right 迴圈條件 mid left right 2 ...