C#中的二分查找

C#中的 二分查找 的步骤

1、数组
2、开始索引
3、结束索引
4、要查找的对象
5、对象所在的索引位置

 

示例代码:


public static int BinarySearch(int[] arr ,int low, int hight,int key)
        {
            int mid = (low + hight) / 2;
            if (low>hight)
            {
                return -1;
            }
            else
            {
                if (arr[mid] == key)
                {
                    return mid;
                }
                else if(arr[mid] > key)
                {
                    return BinarySearch(arr, low, mid - 1, key);
                }
                else
                {
                    return BinarySearch(arr, mid + 1, hight, key);
                }
            }

        }



    int[] y = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            int rr = BinarySearch(y, 0, y.Length - 1, 5);
            Console.Write(rr);

            Console.Read();

C#二分查找是一种高效的查找算法,它适用于已排序的数组或列表。下面是使用C#实现二分查找的步骤: 1. 确保数组或列表已排序。如果未排序,需要先对其进行排序。 2. 定义一个方法来执行二分查找。该方法接收三个参数:要查找的目标值、要查找的数组或列表、以及数组或列表的起始和结束索引。 3. 在方法内部,计算数组或列表的索引:(start + end) / 2。 4. 比较目标值与间元素的值。如果相等,则返回索引。 5. 如果目标值小于间元素的值,则在左半部分继续进行二分查找。更新结束索引索引减1,并递归调用二分查找方法。 6. 如果目标值大于间元素的值,则在右半部分继续进行二分查找。更新起始索引索引加1,并递归调用二分查找方法。 7. 如果起始索引大于结束索引,则表示目标值不存在于数组或列表,返回-1。 下面是一个示例代码: ```csharp public static int BinarySearch(int target, int[] array, int start, int end) { if (start > end) return -1; int mid = (start + end) / 2; if (array[mid] == target) return mid; else if (array[mid] > target) return BinarySearch(target, array, start, mid - 1); else return BinarySearch(target, array, mid + 1, end); } ``` 使用示例: ```csharp int[] array = { 1, 3, 5, 7, 9 }; int target = 5; int result = BinarySearch(target, array, 0, array.Length - 1); if (result != -1) Console.WriteLine("目标值在数组索引为:" + result); else Console.WriteLine("目标值不存在于数组。"); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值