如何使用二分查找算法在C语言中找到数组中的最小元素?

c编程语言提供了两种搜索技术。它们如下所示:

线性搜索二分搜索

二分搜索

这种方法只适用于有序列表。给定列表被分成两个相等的部分。给定的关键字与列表的中间元素进行比较。

在这里,可能会发生三种情况,如下所示:

如果中间元素与关键字匹配,则搜索将在此成功结束

如果中间元素大于关键字,则搜索将在左侧分区进行。

如果中间元素小于关键字,则搜索将在右侧分区进行。

立即学习“C语言免费学习笔记(深入)”;

输入 (i/p) – 未排序的元素列表,关键字。

输出 (o/p)

成功 – 如果找到关键字失败 – 否则

如何使用二分查找算法在C语言中找到数组中的最小元素?

key = 20mid = (low +high) /2

登录后复制

如何使用二分查找算法在C语言中找到数组中的最小元素?

程序1

以下是使用二分查找在数组中找到最小元素的C程序:

#includeint main(){   int a[50], n, i, key, flag = 0, low, mid, high;   printf("enter the no: of elements:");   scanf ("%d",&n);   printf("enter the elements:");   for(i=0; i key)            high = mid-1;         else            low = mid+1;      }   }   if (flag == 1)      printf ("search is successful");   else      printf("search is unsuccessful");   return 0;}

登录后复制

输出

当上述程序被执行时,它产生以下结果 −

Run 1:enter the no: of elements:5enter the elements:1234115667enter a key element:45search is unsuccessfulRun 2:enter the no: of elements:3enter the elements:123456enter a key element:34search is successful

登录后复制

Program2

给定下面的C程序,通过使用二分查找来找到数组中的最小元素−

#includevoid Bmin(int *a, int i, int n){   int j, temp;   temp = a[i];   j = 2 * i;   while (j  a[j])         j = j + 1;      if (temp = a[j]){         a[j / 2] = a[j];         j = 2 * j;      }   }   a[j/2] = temp;   return;}int binarysearchmin(int *a,int n){   int i;   for(i = n/2; i >= 1; i--){      Bmin(a,i,n);   }   return a[1];}int main(){   int n, i, x, min;   int a[20];   printf("Enter no of elements in an array

");   scanf("%d", &n);   printf("

Enter %d elements: ", n);   for (i = 1; i

输出

当上述程序被执行时,它产生以下结果 −

Enter no of elements in an array5Enter 5 elements:1223344556minimum element in an array is: 12

登录后复制

以上就是如何使用二分查找算法在C语言中找到数组中的最小元素?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2587711.html

(0)
上一篇 2025年3月6日 15:40:34
下一篇 2025年3月6日 15:40:40

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 在C++中,找到给定数组中后缀的阶乘和后缀和数组

    当您了解C++编程语言的工具和技术时,从数组中发现后缀阶乘和相应的后缀和数组是完全可行的。这正是我们将在本文中讨论的内容,包括方法语法、算法复杂性以及解开它们的有效方法。此外,本文还展示了基于这些方法的两个具体代码示例。最后,我们将总结我们…

    2025年3月6日
    200
  • 如何使用C++语言优化嵌入式系统的各项功能

    如何使用C++语言优化嵌入式系统的各项功能 嵌入式系统是一种专门针对特定任务设计和制造的计算机系统。它通常具有实时性要求高、功耗低、资源受限等特点。在嵌入式系统的开发过程中,如何优化各项功能成为一项关键任务。本文将介绍如何使用C++语言来优…

    2025年3月6日
    200
  • C语言标准

    在这个问题中,我们将学习C编程语言中定义的标准。这些是开发社区定义的编译器理想情况下编译程序的标准方式。 为了理解我所说的,以一个常见的C程序为例,你们都一定遇到过并且看到了问题,但没有深入研究。 main()函数的void返回类型- 看下…

    2025年3月6日
    200
  • 使用C语言编写的二分查找程序,使用pthread进行多线程处理

    我们知道二分查找方法是一种最适合和有效的排序算法。这个算法适用于已排序的序列。算法很简单,它只是从中间找到元素,然后将列表分成两部分,并向左子列表或右子列表移动。 我们知道它的算法。现在我们将看到如何在多线程环境中使用二分查找技术。线程的数…

    2025年3月6日
    200
  • C++程序以找到使数字为0所需的最少操作次数

    假设我们有一个包含 n 位数字的数字字符串 S。假设 S 代表一个数字时钟,整个字符串显示从 0 到 10^n – 1 的整数。如果位数较少,则会显示前导 0。按照以下操作 – 将时钟上的数字减 1,或 交换两位数字…

    2025年3月6日
    200
  • 在C语言中,预订的数字是什么意思?

    订婚数是两个数字的对,其除数之和等于另一个数字。 例如 (a, b) 是一对订婚数,如果 s(a) = b + 1 且 s(b) = a + 1,其中 s(b) 是 b 的等分和:等效条件是 σ(a) = σ(b) = a + b + 1,…

    2025年3月6日
    200
  • 如何在C语言中将数组的元素以相反的顺序打印出来?

    尝试按照下面给出的算法以相反的顺序打印元素: 步骤1 – 声明一个大小为5的数组 步骤2 – 使用for循环将5个元素输入到内存中 步骤3 – 以相反的顺序显示元素 立即学习“C语言免费学习笔记(深入)”…

    2025年3月6日
    200
  • 在C语言中,指针是指向结构体的指针

    结构体指针保存了整个结构体的加法。 它用于创建复杂的数据结构,如链表、树、图等。 成员可以使用称为箭头运算符 ( -> ) 的特殊运算符来访问结构体。 声明 以下是 C 编程中指向结构体的指针的声明 – struct ta…

    2025年3月6日
    200
  • 解释C语言中的不同部分

    C程序是由一组协议定义的,程序员在编写代码时必须遵循这些协议。 部分 完整的程序被划分为不同的部分,如下所示: 文档部分 – 在这里,我们可以给出有关程序的命令,如作者姓名、创建或修改日期。在/* */或//之间编写的信息被称为…

    2025年3月6日
    200
  • C++程序创建自定义异常

    异常是C++的一个非常核心的概念。在执行过程中发生不希望或不可能的操作时会发生异常。在C++中处理这些不希望或不可能的操作被称为异常处理。异常处理主要使用三个特定的关键字,它们是‘try’、‘catch’和‘throw’。‘try’关键字用…

    2025年3月6日
    200

发表回复

登录后才能评论