CShap ternary search 源代码
时间: 2024-02-03 17:36:05 浏览: 89
以下是C#中的三分查找的源代码示例:
```
using System;
class TernarySearch
{
static int ternarySearch(int[] arr, int left, int right, int key)
{
if (right >= left)
{
int mid1 = left + (right - left) / 3;
int mid2 = right - (right - left) / 3;
if (arr[mid1] == key)
return mid1;
if (arr[mid2] == key)
return mid2;
if (key < arr[mid1])
return ternarySearch(arr, left, mid1 - 1, key);
else if (key > arr[mid2])
return ternarySearch(arr, mid2 + 1, right, key);
else
return ternarySearch(arr, mid1 + 1, mid2 - 1, key);
}
return -1;
}
static void Main(string[] args)
{
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int n = arr.Length;
int key = 5;
int result = ternarySearch(arr, 0, n - 1, key);
if (result == -1)
Console.WriteLine("Element not found");
else
Console.WriteLine("Element found at index " + result);
}
}
```
在这个示例中,我们首先定义了一个名为`ternarySearch`的函数,该函数接受四个参数:一个整数数组,数组的左索引,数组的右索引和要搜索的关键字。该函数使用递归来查找关键字,并返回关键字在数组中的索引或-1(如果未找到关键字)。
在`Main`函数中,我们定义了一个整数数组,指定了要搜索的关键字,并调用`ternarySearch`函数来查找该关键字。如果关键字未找到,则输出“Element not found”,否则输出找到的元素的索引。
阅读全文