C#面試題:二分法查詢
阿新 • • 發佈:2018-12-26
程式碼如下:二分法查詢的陣列必須要排好序。
- int BinarySearch(int[] arr,int x){
- int min=0;//左索引
- int max=arr.Length-1;//右索引
- while(min<=max){
- int mid=(min+max)/2;//中間索引
- if(x==arr[mid]){//如果輸入的值相等。返回索引
- return mind+1;
- }
- if(x<arr[mid]){//在左邊區間
- max=mid-1;
- }
- if(x>arr[mid]){//在右邊區間
- min=mid+1;
- }
- }
- return -1;
- }
Main函式程式碼:
- pub static void Main(string[] args){
- int[] arr={2,3,4,10,19,40};
- int x=10;
- int result=BinarySearch(arr,x);
- if(result==-1){
- Console.WriteLine("沒找到");
- }else{
- Console.WriteLine("找到了:"+result);
- }
- }
大家有更好的方法,麻煩也請告訴我。