顺序查找与二分查找

本文介绍了两种基本的查找算法:顺序查找与二分查找。通过具体的代码实现展示了如何在整数数组中查找指定的元素,并给出了查找成功时元素的位置或查找失败时的提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;

namespace 查找算法
{
class Class1
{
   static void Main(string[] args)
   {
    int[] arr = new int[]{1,3,5,6,7,8,9};
    int key=80;
    int retValue;

    retValue = binarySearching(arr, 0, arr.Length-1, key);

    if(retValue==-1)
     System.Console.WriteLine("{0} 在查找表中不存在", key);
    else
     System.Console.WriteLine("{0} 在查找表中的位置为 {1}", key, retValue);
   }

   /** 顺序查找算法
    * 从长度为 len 的查找表 arr 中查找值为 key的记录
    * 若存在,返回该元素所在的下标;
    * 否则,返回 -1
    */
   static int sequenceSearching(int[] arr, int len, int key)
   {
    int i;
   
    for(i=0; i<len && arr[i]!=key; i++);

    if(i<len)
    {// 找到了,因为arr[i]==key
     return i;
    }
    else
    {//没找到
     return -1;
    }
    //return (i<len)?(i):(-1);
   }

   /** 二分查找算法
    * 从开始位置 low 到结束位置 high 的查找表 arr 中查找值为 key的记录
    * 若存在,返回该元素所在的下标;
    * 否则,返回 -1
    */
   static int binarySearching(int[] arr, int low, int high, int key)
   {
    int mid;
   
    while(low<=high)
    {
     mid = ( low + high ) / 2;
     if(arr[mid]==key)     //找到
      return mid;
     else if(arr[mid]>key)    //在左边部分继续查找
      high = mid - 1;
     else        //在右边部分继续查找
      low = mid + 1;
    }
    return -1;
   }
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值