C#实现二分查找算法
以下是一个使用 C# 实现的二分查找算法示例:
using System;
class Program
{
static int BinarySearch(int[] arr, int target)
{
int low = 0;
int high = arr.Length - 1;
while (low <= high)
{
int mid = (low + high) / 2;
// 如果目标值等于中间元素,则返回索引
if (arr[mid] == target)
{
return mid;
}
// 如果目标值小于中间元素,则在左半部分继续查找
else if (arr[mid] > target)
{
high = mid - 1;
}
// 如果目标值大于中间元素,则在右半部分继续查找
else
{
low = mid + 1;
}
}
// 如果未找到目标值,则返回 -1
return -1;
}
static void Main(string[] args)
{
int[] arr = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 };
int target = 13;
int result = BinarySearch(arr, target);
if (result != -1)
{
Console.WriteLine($"目标值 {target} 在数组中的索引为 {result}");
}
else
{
Console.WriteLine($"目标值 {target} 不存在于数组中");
}
}
}
这段代码定义了一个 BinarySearch
方法,该方法接受一个已排序的整数数组 arr
和目标值 target
作为参数,并返回目标值在数组中的索引,如果目标值不存在于数组中,则返回 -1。在 Main
方法中进行了测试。