java 算法二分查找和折半查找
更新時間:2017年05月19日 17:02:39 投稿:lqh
這篇文章主要介紹了java 算法二分查找與折半查找的相關(guān)資料,需要的朋友可以參考下
java 算法二分查找與折半查找
折半查找 :首先數(shù)組是已經(jīng)排好序的
實例代碼:
package com.hao.myrxjava; /** * 折半查找 :首先數(shù)組是已經(jīng)排好序的 * * @author zhanghaohao * @date 2017/5/15 */ public class HalfDivision { /** * 循環(huán)實現(xiàn) * * @param array 排好序的數(shù)組 * @param value 查找的值 * @return value在array的位置 */ public static int halfDivision(int value, int[] array) { if (array == null || array.length == 0) throw new NullPointerException("array is null"); int low = 0; int high = array.length - 1; int mid = (low+high)/2; while (array[mid] != value) { if (array[mid] > value) high = mid - 1; else low = mid + 1; if (low > high) return -1; mid = (low+high)/2; if (array[mid] == value) return mid; } return mid; } /** * 遞歸實現(xiàn) * * @param array 排好序的數(shù)組 * @param value 查找的值 * @param low 查找的起始位置 * @param high 查找的末尾位置 * @return value在array的位置 */ public static int halfDivision(int value, int[] array, int low, int high) { if (low > high) return -1; int mid = (low + high) / 2; if (array[mid] == value) return mid; else if (array[mid] > value) return halfDivision(value, array, low, mid - 1); else if (array[mid] < value) return halfDivision(value, array, mid+1, high); return -1; } }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Java的Cglib動態(tài)代理實現(xiàn)方式詳解
這篇文章主要介紹了Java的Cglib動態(tài)代理實現(xiàn)方式詳解,CGLIB是強大的、高性能的代碼生成庫,被廣泛應(yīng)用于AOP框架,它底層使用ASM來操作字節(jié)碼生成新的類,為對象引入間接級別,以控制對象的訪問,需要的朋友可以參考下2023-11-11Maven插件構(gòu)建Docker鏡像的實現(xiàn)步驟
這篇文章主要介紹了Maven插件構(gòu)建Docker鏡像的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10SpringBoot解決BigDecimal傳到前端后精度丟失問題
這篇文章將通過示例詳細為大家介紹SpringBoot如何解決BigDecimal傳到前端后精度丟失問題,文中的示例代碼講解詳細,感興趣的可以了解一下2022-06-06