代码如下:二分法查找的数组必须要排好序。
- 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);
- }
- }
大家有更好的方法,麻烦也请告诉我。