对于自定义的数组,要求先进行排序,然后进行查找某个数字。C#

不允许用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;
 }
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网