C#二分查找算法实例分析

本文实例讲述了C#算法" title="查找算法">查找算法" title="二分查找算法">二分查找算法。分享给大家供大家参考。具体实现方法如下:

// input array is assumed to be sorted

public int BinarySearch(int[] arr, int x)

{

if (arr.Length == 0)

return -1;

int mid = arr.Length / 2;

if (arr[mid] == x)

return mid;

if (x < arr[mid])

return BinarySearch(GetSubArray(arr,0,mid-1),x);

else

{

int _indexFound = BinarySearch(GetSubArray(arr,mid+1,arr.Length-1),x);

if (_indexFound == -1)

return -1;

else

return mid + 1 + BinarySearch(GetSubArray(arr,mid+1,arr.Length-1),x);

}

}

public int[] GetSubArray(int[] arr, int start, int end)

{

List<int> _result = new List<int>();

for (int i = start; i <= end; i++)

{

_result.Add(arr[i]);

}

return _result.ToArray();

}

希望本文所述对大家的C#程序设计有所帮助。

以上是 C#二分查找算法实例分析 的全部内容, 来源链接: utcz.com/z/325865.html

回到顶部