陣列中有可能有多個相同資料, 所以建立乙個集合用來存放已經找到的索引
將引數傳進方法內, 接下來實現方法:
public static void main(string args) ;
arrays.sort(arr);
system.out.println("首先排序: " + arrays.tostring(arr));
scanner input = new scanner(system.in);
system.out.println("請輸入要查詢的數: ");
int a = input.nextint();
listlist = new arraylist<>();
listlist1 = binarysearch(arr,a,0,arr.length-1, list);
//返回的集合為null或者集合長度為0就說明沒有找到
if (list1 != null && list1.size() != 0)else
}
如果中間索引不等於要查詢的值, 就判斷與要查詢的值得相對大小, 將開始索引或者結束索引進行移動, 然後迴圈操作, 迴圈結束後如果還沒有找到就返回乙個空的集合
private static listbinarysearch(int arr,
int a,int beginindex,int endindex,listlist) else if (arr[middleindex] < a)else
}return list;
}private static void nextindex(int arr, int a, int middleindex, listlist)
}private static void preindex(int arr,int a, int middleindex, listlist)
}
java演算法之二分查詢
package com.hym.test.algorithms public class binaryserch public int searchbycycle int thefindnum else if begin end else else if thefindnum arraytest m...
Java演算法之二分查詢演算法
折半查詢又叫二分法查詢,在乙個查詢區間中,確定出查詢區間的中心位置,用待查詢資料元素的關鍵字與中心位置上的資料元素的關鍵字比較,若兩者相等,則查詢成功 否則,若前者小於後者,則把查詢區間定為原查詢區間的前半段繼續這樣的過程 否則,則把查詢區間的後半段繼續這樣的過程。二分查詢演算法是建立在有序陣列基礎...
Java排序演算法之二分查詢
二分查詢特定整數在整型陣列中的位置 非遞迴 查詢線性表必須是有序列表 paramdataset paramdata returnindex public int binarysearch int dataset,int data else if data dataset midindex else ...