// An highlighted block
public void search
{
var item =new string[10]{ "赵先生", "钱先生", "孙先生", "李先生", "王先生", "钱先生", "曾先生", "梁先生", "赵小姐","石先生"};
var search2 = "石先生";
对数组进行有序排列,此为二分法必须的步骤
Array.Sort(item);
调用函数
var auu= BinarySearch(item, search2);
}
/二分法本体
public static int BinarySearch(string[] arr, string value)
{
int low=0;
int height=arr.length-1;
while(low<=height)
{
/获取中间数
var middle= low+height/2;
如果是相等的就返回
if (value== arr[middle])
{
return middle;
}
if (value.CompareTo(arr[middle])>0)
{
low = middle + 1;
}
if (value.CompareTo(arr[middle]) <0)
{
high = middle - 1;
}
}
return -1;
}
CompareTo用法
s1.CompareTo(s2):
表示字符串s1与s2进行大小比较,
s1<s2 s1.CompareTo(s2)结果为:-1
s1=s2 s1.CompareTo(s2)结果为:0
s1>s2 s1.CompareTo(s2)结果为:1