`
gqf2008
  • 浏览: 77150 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

两分搜索算法(折半查找算法)

阅读更多

#define MAX  100 
int n = 0; 
int x[MAX];//seq data array {x[0] < ... x[max - 1]} 

int binary(int t) 
{ 
    int l, u; 

    if(x[0] > t ||x[n] < t || n < 0){ 
      printf("input error \n"); 
      return -1; 
    } 

    l = 0; 
    u = n; 
    while (l <= m) { 
      m = (l + u) / 2; 
      if (x[m] < t) { 
              l = m + 1; 
      } else if (x[m] > t) { 
              u = m - 1; 
      } else { //find it 
              return m; 
      } 
    } 
    return -1; 
} 

int p[MAX]; //用于检验的数组顺序是打乱的 

int main(void) 
{ 
    int i = 0; 

    printf("please input n( <%d)", MAX); 
    scanf("%d", &n); 
    for (i = 0; i < n;i++) { 
    if (-1 == binary(p[i])) { 
          printf("fail to find p[%d] = %d \n", i, p[%d]); 
      } 
    } 
}

分享到:
评论

相关推荐

    折半查找的递归算法

    折半查找(也称为二分查找)是一种高效的查找算法,适用于有序数组。通过不断将查找区间对半分割,可以快速定位目标值的位置,时间复杂度为O(log n),其中n是数组长度。本文将详细介绍如何使用递归方法实现折半查找...

    折半查找算法在顺序表中插入一个元素讲解.pdf

    折半查找算法在顺序表中插入一个元素讲解 折半查找算法是一种常用的查找算法,它可以在已经排好序的顺序表中快速地找到某个元素。下面我们来详细讲解折半查找算法在顺序表中插入一个元素的过程。 折半查找算法的...

    折半查找算法的改进和程序实现

    在众多的搜索算法中,折半查找算法因其简单高效而被广泛应用。然而,随着数据量的不断增长,传统折半查找算法的性能在某些场合下已不能完全满足需求。本文将针对这一问题,探讨折半查找算法的改进方法,并给出相应的...

    zhebanchazhao.rar_折半 查找_折半查找_折半查找算法_查找_查找算法

    以下是关于折半查找算法的详细解释和应用。 一、算法描述: 1. 确定数组的起始索引(left)和结束索引(right),通常初始时left为0,right为数组长度减1。 2. 如果left ,则执行以下步骤: - 计算中间索引mid,即...

    静态查找表。实现有序表的折半查找算法

    ### 静态查找表与折半查找算法 在计算机科学中,静态查找表是一种用于存储数据并能够高效检索特定元素的数据结构。本篇文章将详细解释如何实现一个静态查找表,并利用折半查找算法(也称二分查找算法)来查询表中的...

    折半查找算法

    ### 折半查找算法 #### 一、简介 折半查找算法(Binary Search),也称为二分查找算法,是一种在有序数组中查找特定元素的高效算法。它的基本思想是在有序数组中通过比较中间元素与目标值来逐步缩小查找范围,直到...

    折半查找算法实现(C++).doc

    * 缓存搜索:折半查找算法可以用于缓存搜索,快速查找指定的缓存项。 折半查找算法是一种高效的查找算法,它可以快速查找指定元素在有序数组中的位置。该算法广泛应用于各种领域,例如数据库查询、文件搜索和缓存...

    折半查找算法及matlab代码实现

    折半查找算法是一种高效的搜索技术,尤其适用于已经排序的数组。该算法的基本思想是通过不断将搜索范围减半来查找目标值,因此也被称为二分查找。与线性查找相比,折半查找在最坏情况下的时间复杂度为O(log n),而...

    折半查找的递归与非递归算法

    在提供的 `biSearch.java` 文件中,我们可以预期它包含了一个或多个实现折半查找算法的方法。方法可能有递归版本和非递归版本,也可能有额外的功能,如处理错误、打印日志或优化性能。具体实现需要查看代码内容才能...

    综合查找算法(顺序查找、折半查找、二叉排序树、哈希表)-数据结构课程设计

    本文将详细探讨四种常见的查找算法:顺序查找、折半查找、二叉排序树查找以及哈希表查找,并结合提供的"综合查找算法"课程设计项目,解析其在实际应用中的特点和优势。 **顺序查找**是最基础的查找算法,适用于任何...

    java 快速排序 折半查找的界面实现 (递归与分治法)

    快速排序和折半查找是两种在计算机科学中广泛使用的算法,尤其在数据处理和搜索操作中扮演着重要角色。在Java编程中,这两种算法都可以通过递归和分治策略进行实现,以提高效率和可读性。下面我们将深入探讨这两个...

    折半查找的简单C语言算法

    使用折半查找,输入一个整数,查找是否在数组中,如在给出下标,否则-1

    数据结构折半查找算法(C语言版)

    数据结构在计算机科学中占有重要地位,而折半查找算法是数据结构中一种高效搜索算法。本主题将深入探讨折半查找(Binary Search)算法,以及如何使用C语言实现这一算法。 折半查找,又称二分查找,是针对有序数组的...

    算法设计的折半查找

    本资源为算法课程实验,用C++实现了折半查找,能帮助同学完成课程实验

    顺序查找和折半查找

    在本主题中,我们将聚焦于两种基础但重要的查找算法:顺序查找和折半查找。 **顺序查找(Sequential Search)** 顺序查找是最简单的查找算法,适用于任何线性数据结构,如数组或链表。其基本思想是从数据集合的第一...

    C语言实现折半查找算法

    ### C语言实现折半查找算法 #### 知识点概览 1. **折半查找算法的基本原理** 2. **C语言实现折半查找的关键步骤** 3. **代码解析及优化建议** 4. **时间复杂度分析** 5. **适用场景与限制条件** #### 折半查找...

    Java代码递归的折半查找算法

    递归版本的折半查找算法是一种高效的搜索技术,适用于已排序的数组。它的工作原理是将问题分解为更小的问题,直到找到目标值或确定目标值不存在于数组中为止。这种策略在计算机科学中称为“分而治之”。 #### 折半...

    折半查找 C语言 算法

    总的来说,掌握折半查找算法对于任何IT专业人士来说都是至关重要的,无论是在面试、编写高效的代码,还是解决实际问题中,它都是一种非常实用的工具。通过学习和实践C语言中的折半查找,你可以更好地理解和运用这个...

    C语言实现顺序表的顺序查找和折半查找

    在上面的代码中,我们实现了两种折半查找算法:非递归算法和递归算法。在main函数中,我们首先输入数组的元素个数和数组元素,然后输入要查询的数,并使用BinSearch1或BinSearch2函数来查找该元素。 本文详细介绍了...

Global site tag (gtag.js) - Google Analytics