java 二分法 应用_介绍一下java中的二分法运用
2015-05-10 06:30:02
閱讀( 83 )
/*二分法的前提是這個數組是從大到小或者從小到大的排序方式,以下是按照從小到大的方式*/
public class Test {
public static void main(String[] args) {
// 定義一個數組
int nums[] = { 1, 3, 6, 8, 9, 10, 12, 18, 20, 33, 34 };
// 欲查詢的數字
int num = 35;
// 輸出num在nums中的索引
System.out.println(“二分法查看數組中某數的索引為:” + dichotomy(nums, num));
}
/**
* 二分法查找
*
* @param nums 數組
* @param num 查找的數
* @return 返回num索引,如果不存在返回-1
*/
public static int dichotomy(int[] nums, int num) {
// 數組長度必須大于零
if (nums != null && nums.length > 0) {
// 開始索引
int start = 0;
// 結束索引
int end = nums.length – 1;
// 中間索引
int center = (start + end) / 2;
// 開始索引不能大于結束索引
while (start <= end) {
// 取中間索引值比較,如果相同,返回該索引
if (num == nums[center]) {
return center;
}
// 如果值在center右邊或左邊,重新定位start或end,重新計算center值
if (num > nums[center]) {
start = center + 1;
}
if (num < nums[center]) {
end = center – 1;
}
center = (start + end) / 2;
}
}
return -1;
}
}
分享給朋友:
親~ 如果您有更好的答案 可在評論區發表您獨到的見解。
您想查看更多的信息:
面試題
總結
以上是生活随笔為你收集整理的java 二分法 应用_介绍一下java中的二分法运用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 静态类 new_java静态类
- 下一篇: 在农在东北这一带农村居住建一个彩钢房50