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

不允许用For、while等循环来穷举,查找方法自行百度实现,推荐使用折半查找。... 不允许用For、while等循环来穷举,查找方法自行百度实现,推荐使用折半查找。 展开
 我来答
amwih001
推荐于2016-07-17 · TA获得超过2.3万个赞
知道大有可为答主
回答量:1529
采纳率:100%
帮助的人:681万
展开全部
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;
 }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式