`

顺序查找与二分查找

 
阅读更多

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;
   }
}
}

分享到:
评论

相关推荐

    Search(二分查找和顺序查找的比较)

    本篇文章将详细讨论两种常见的搜索算法:顺序查找和二分查找,以及它们在C++环境下的实现和比较。 **顺序查找(Sequential Search)** 顺序查找是最基础的搜索算法之一,其工作原理是从数据集合的第一个元素开始,...

    查找算法集(顺序查找、二分查找、插值查找、动态查找)

    以下是四种常见的查找算法:顺序查找、二分查找、插值查找和动态查找。 顺序查找 顺序查找是一种最简单的查找算法,它的实现方式是从数组或链表的第一个元素开始,逐个比较元素直到找到目标元素或达到数组或链表的...

    数据结构实验——查找(二分查找&顺序查找)

    一、实验目的: 熟悉各种查找算法及其复杂性,能够根据实际情况选择合适的存储结构。 二、实验要求: 1、掌握查找的基本方法。 2、提交实验报告,报告...编程分别对有序顺序表的顺序查找,二分查找算法进行实现。

    数据结构(栈、队列、二叉树、顺序查找、二分查找、图的遍历等)

    在本教程中,我们将深入探讨几个关键的数据结构:栈、队列、二叉树、顺序查找、二分查找以及图的遍历。这些基础知识对于理解和编写高效的算法至关重要。 1. 栈(Stack) 栈是一种后进先出(LIFO)的数据结构,类似...

    查找算法:二分查找、顺序查找

    这里我们将深入探讨两种常见的查找算法:二分查找和顺序查找。 **一、顺序查找** 顺序查找是最基础的查找算法之一。它的工作原理是从数据集(如数组或列表)的第一个元素开始,逐个比较目标值与当前元素,直到找到...

    迭代顺序查找、递归顺序查找、二分查找

    本文将深入探讨三种常见的查找算法:迭代顺序查找、递归顺序查找以及二分查找。它们各自有其特点和适用场景,理解并掌握这些算法对于提升编程能力及优化代码性能至关重要。 **迭代顺序查找(Sequential Search)** ...

    数据结构顺序查找

    本实验报告主要关注两种查找算法的实现:顺序查找和二分查找,这两种方法在不同的场景下各有优势。 首先,顺序查找是最基础的查找算法之一。在含有n个元素的顺序表中,顺序查找的策略是从头到尾逐个比较,直到找到...

    c语言-顺序查找、二分查找代码.docx

    "C语言顺序查找、二分查找代码" C语言是一种广泛使用的编程语言,查找算法是C语言中非常重要的一部分。顺序查找和二分查找是两种常见的查找算法,本文将对这两种算法进行详细的讲解和实现。 一、顺序查找 顺序...

    实验十二------顺序和二分查找算法

    顺序和二分查找算法 ...顺序查找算法和二分查找算法都是查找算法中重要的一种,它们都可以用来查找目标元素,但是它们的时间复杂度不同,二分查找算法的时间复杂度远远小于顺序查找算法的时间复杂度。

    顺序查找和折半查找

    1. 效率:折半查找的效率明显高于顺序查找,尤其对于大数据集合,二分查找的优势更为显著。 2. 应用场景:顺序查找适用于无序数据集,而折半查找要求数据已排序。 3. 预处理:折半查找需要预先排序,而顺序查找则不...

    顺序查找表 二分查找表 折半查找表 二叉排序树 C#源代码

    这里我们聚焦于四个关键概念:顺序查找表、二分查找表(也称折半查找表)、二叉排序树以及C#编程语言。这些知识点在计算机科学和软件工程中都有着广泛的应用。 1. **顺序查找表**: 顺序查找是最基础的查找方法,...

    采用二分查找法和顺序查找法查找元素的下标

    本主题主要关注两种常见的查找方法:顺序查找法和二分查找法。这两种方法在不同的场景下各有优势,理解并能熟练运用它们对于优化程序性能至关重要。 首先,我们来讨论顺序查找法。这种方法是最基础的查找策略,适用...

    查找算法集(顺序查找、二分查找、插值查找、动态查找).docx

    根据不同的实现方式和查找策略,查找算法可以分为顺序查找、二分查找、插值查找、动态查找等多种类型。 一、顺序查找算法 顺序查找算法是一种简单的查找算法,它的实现方式是从数组或链表的第一个元素开始,逐个...

    php顺序查找和二分查找示例

    顺序查找适用于小型数据集或未排序的数据集,而二分查找则适用于大型的已排序数据集,二分查找的效率远远高于顺序查找。 顺序查找是一种基础的查找算法,它按照数组的顺序,逐一检查每个元素,直到找到所需的值或...

    顺序查找、拆分查找等的代码

    顺序查找和二分查找是两种常见的数据查找方法,在计算机科学中有着广泛的应用。这两种方法都是在数组或列表中寻找特定元素的过程,但它们的效率和实现方式有所不同。 **顺序查找**: 顺序查找是最基础的查找算法,...

    有监视哨的顺序查找

    "有监视哨的顺序查找"是一种在数据结构与算法领域中的搜索方法,它对传统的顺序查找进行了优化。...同时,也可以将其与其他查找算法(如二分查找、哈希查找等)进行对比,理解它们各自的适用场景和优缺点。

    折半查找(二分查找)折半查找(二分查找)折半查找(二分查找)

    二分查找的核心思想是“分而治之”,即将一个有序数组分为两个大致相等的部分,根据中间元素的值与目标值的比较结果,决定接下来在左半部分还是右半部分继续查找,或者判断目标值不存在于数组中。这种方法相比于简单...

    二分查找算法

    同时,二分查找算法也可以与其他算法结合使用,例如使用哈希表来存储数组或链表,然后使用二分查找算法来查找特定的元素等。 二分查找算法是一种高效的查找算法,广泛应用于实际应用中,但需要较高的编程技巧和算法...

Global site tag (gtag.js) - Google Analytics