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