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;
}
}
}
分享到:
相关推荐
本篇文章将详细讨论两种常见的搜索算法:顺序查找和二分查找,以及它们在C++环境下的实现和比较。 **顺序查找(Sequential Search)** 顺序查找是最基础的搜索算法之一,其工作原理是从数据集合的第一个元素开始,...
以下是四种常见的查找算法:顺序查找、二分查找、插值查找和动态查找。 顺序查找 顺序查找是一种最简单的查找算法,它的实现方式是从数组或链表的第一个元素开始,逐个比较元素直到找到目标元素或达到数组或链表的...
一、实验目的: 熟悉各种查找算法及其复杂性,能够根据实际情况选择合适的存储结构。 二、实验要求: 1、掌握查找的基本方法。 2、提交实验报告,报告...编程分别对有序顺序表的顺序查找,二分查找算法进行实现。
在本教程中,我们将深入探讨几个关键的数据结构:栈、队列、二叉树、顺序查找、二分查找以及图的遍历。这些基础知识对于理解和编写高效的算法至关重要。 1. 栈(Stack) 栈是一种后进先出(LIFO)的数据结构,类似...
这里我们将深入探讨两种常见的查找算法:二分查找和顺序查找。 **一、顺序查找** 顺序查找是最基础的查找算法之一。它的工作原理是从数据集(如数组或列表)的第一个元素开始,逐个比较目标值与当前元素,直到找到...
本文将深入探讨三种常见的查找算法:迭代顺序查找、递归顺序查找以及二分查找。它们各自有其特点和适用场景,理解并掌握这些算法对于提升编程能力及优化代码性能至关重要。 **迭代顺序查找(Sequential Search)** ...
本实验报告主要关注两种查找算法的实现:顺序查找和二分查找,这两种方法在不同的场景下各有优势。 首先,顺序查找是最基础的查找算法之一。在含有n个元素的顺序表中,顺序查找的策略是从头到尾逐个比较,直到找到...
"C语言顺序查找、二分查找代码" C语言是一种广泛使用的编程语言,查找算法是C语言中非常重要的一部分。顺序查找和二分查找是两种常见的查找算法,本文将对这两种算法进行详细的讲解和实现。 一、顺序查找 顺序...
顺序和二分查找算法 ...顺序查找算法和二分查找算法都是查找算法中重要的一种,它们都可以用来查找目标元素,但是它们的时间复杂度不同,二分查找算法的时间复杂度远远小于顺序查找算法的时间复杂度。
1. 效率:折半查找的效率明显高于顺序查找,尤其对于大数据集合,二分查找的优势更为显著。 2. 应用场景:顺序查找适用于无序数据集,而折半查找要求数据已排序。 3. 预处理:折半查找需要预先排序,而顺序查找则不...
这里我们聚焦于四个关键概念:顺序查找表、二分查找表(也称折半查找表)、二叉排序树以及C#编程语言。这些知识点在计算机科学和软件工程中都有着广泛的应用。 1. **顺序查找表**: 顺序查找是最基础的查找方法,...
本主题主要关注两种常见的查找方法:顺序查找法和二分查找法。这两种方法在不同的场景下各有优势,理解并能熟练运用它们对于优化程序性能至关重要。 首先,我们来讨论顺序查找法。这种方法是最基础的查找策略,适用...
根据不同的实现方式和查找策略,查找算法可以分为顺序查找、二分查找、插值查找、动态查找等多种类型。 一、顺序查找算法 顺序查找算法是一种简单的查找算法,它的实现方式是从数组或链表的第一个元素开始,逐个...
顺序查找适用于小型数据集或未排序的数据集,而二分查找则适用于大型的已排序数据集,二分查找的效率远远高于顺序查找。 顺序查找是一种基础的查找算法,它按照数组的顺序,逐一检查每个元素,直到找到所需的值或...
顺序查找和二分查找是两种常见的数据查找方法,在计算机科学中有着广泛的应用。这两种方法都是在数组或列表中寻找特定元素的过程,但它们的效率和实现方式有所不同。 **顺序查找**: 顺序查找是最基础的查找算法,...
"有监视哨的顺序查找"是一种在数据结构与算法领域中的搜索方法,它对传统的顺序查找进行了优化。...同时,也可以将其与其他查找算法(如二分查找、哈希查找等)进行对比,理解它们各自的适用场景和优缺点。
二分查找的核心思想是“分而治之”,即将一个有序数组分为两个大致相等的部分,根据中间元素的值与目标值的比较结果,决定接下来在左半部分还是右半部分继续查找,或者判断目标值不存在于数组中。这种方法相比于简单...
同时,二分查找算法也可以与其他算法结合使用,例如使用哈希表来存储数组或链表,然后使用二分查找算法来查找特定的元素等。 二分查找算法是一种高效的查找算法,广泛应用于实际应用中,但需要较高的编程技巧和算法...