java binary是什么,讓我們一起了解一下?
binary是以2為基數代表系統的二進位制,這一系統中,通常用兩個不同的符號0(代表零)和1(代表一)來表示,現代的計算機和依賴計算機的設備里都使用二進制,每個數字稱為一個比特(Bit,Binary digit的縮寫)。
實際應用中,比如binary search(二分查找)和bubblesort(冒泡排序)一樣,binary search是在一個有序排列的數組中查找指定數據的下標并輸出,普通的查找方法通過遍歷數組,找出對應數據。
但是針對數組長度較長或者非常長的情況下,這個從頭遍歷查找的方法效率就顯得十分低下,這時候二分查找的優勢就顯現出來了。
二分查找,意味著從中間開始進行比較,因為數組是有序排列的(一般從小到大);所以就可以從數組的中間比較。
下面通過代碼實現:
class?BinarySearch{ public?static?void?main(String[]?args){ //創建一個有序數組 int[]?arr1={1,2,3,4,5,6,7}; //調用binarySearch方法,傳入參數??arr1,6 binarySearch(arr1,6); ????????} ????????static?void?binarySearch(int[]?arr,int?a){ ????????//定義數組的起點下標和終點下標 ?????????????int?min=0,max=arr.length-1; ?????????????/** ??????????????*定義數組的中間數據的下標,接收的類型為int? ??????????????*所以當數據長度為偶數時不影響實際循環 ??????????????*/ ?????????????int?centre=(min+max)/2; ?????????????//使用while循環,不知道具體的循環次數所以for循環不適用 ?????????????while(min<=max){ ?????????????//第一種,在中間的數字就是需要查找的數,直接跳出循環 if(arr[centre]==a){ ????????System.out.println(centre); ????????break; ????//當中間的數大于查找數,將中間數據的下標減1?賦給?最大下標 ????}if(arr[centre]>a){ ????????max=centre-1; ????//當中間的數小于查找數,將中間數據的下標加1?賦給?最小下標 ????}else{ ?????????min=centre+1; ????} ????//完成新的賦值之后,再將完成新的賦值的下標的平均值賦值給中間下標 ????????????????centre=(min+max)/2; ?????????????} ???????} }
以上就是小編今天的分享了,希望可以幫助到大家。