開心生活站

位置:首頁 > IT科技 > 

java,binary

IT科技1.16W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java binary是什麼,讓我們一起了解一下?

binary是以2為基數代表系統的二進位制,這一系統中,通常用兩個不同的符號0(代表零)和1(代表一)來表示,現代的計算機和依賴計算機的設備裏都使用二進制,每個數字稱為一個比特(Bit,Binary digit的縮寫)。

實際應用中,比如binary search(二分查找)和bubblesort(冒泡排序)一樣,binary search是在一個有序排列的數組中查找指定數據的下標並輸出,普通的查找方法通過遍歷數組,找出對應數據。

java binary

但是針對數組長度較長或者非常長的情況下,這個從頭遍歷查找的方法效率就顯得十分低下,這時候二分查找的優勢就顯現出來了。

二分查找,意味着從中間開始進行比較,因為數組是有序排列的(一般從小到大);所以就可以從數組的中間比較。

下面通過代碼實現:

class BinarySearch{public static void main(String[] args){//創建一個有序數組int[] arr1={1,2,3,4,5,6,7};//調用binarySearch方法,傳入參數  arr1,6binarySearch(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;             }       }}

標籤:java binary