不允许用For、while等循环来穷举,查找方法自行百度实现,推荐使用折半查找。
using System;
public class A
{
public static void Main()
{
//要想实现折半查找,输入的数组必须是排序的,不规律的没法实现
int[] intary=new int[]{1,2,3,4,5,6,7,8,9,10};
Console.WriteLine("{0}",Search(intary,9,intary.Length));
}
//递归查找
//ints 包含被查找数字的数组
//key 要查找的数字
//i 数组的长度
//返回数字在数组中的位置,没找到返回-1,int类型
public static int Search(int[] ints,int key,int i)
{
int index=i/2;
if(ints[index]<key)
{
return Search(ints,key,index+ints.Length);
}
else if(ints[index]>key)
{
return Search(ints,key,index-1);
}
else if(ints[index]==key)
{
return index;
}
return -1;
}
}
public class A
{
public static void Main()
{
//要想实现折半查找,输入的数组必须是排序的,不规律的没法实现
int[] intary=new int[]{1,2,3,4,5,6,7,8,9,10};
Console.WriteLine("{0}",Search(intary,9,intary.Length));
}
//递归查找
//ints 包含被查找数字的数组
//key 要查找的数字
//i 数组的长度
//返回数字在数组中的位置,没找到返回-1,int类型
public static int Search(int[] ints,int key,int i)
{
int index=i/2;
if(ints[index]<key)
{
return Search(ints,key,index+ints.Length);
}
else if(ints[index]>key)
{
return Search(ints,key,index-1);
}
else if(ints[index]==key)
{
return index;
}
return -1;
}
}
温馨提示:答案为网友推荐,仅供参考