C 语言数组中的峰值元素28 Aug 2024 | 5 分钟阅读 在数组中,峰值元素是其不小于其邻居的元素。这是面试中经常被问到的问题之一。它很简单。本教程展示了我们可以遵循的不同方法来有效解决问题。 示例 假设数组为 [10, 20, 15, 23, 14] 23 是峰值元素,因为它不小于其两个邻居 - 15 和 14。
朴素方法 #1:遍历整个数组算法
代码 输出 Enter the size of the Array: 5 Enter the elements: 8 2 3 9 5 The first Peak element index in the Array: 0 时间复杂度:O(n) => 一次遍历 朴素方法 #2:查找数组中的最大元素如果我们找到数组中的最大元素,那么它的邻居会自动小于该元素。我们可以在数组上使用 max() 函数。 算法
代码 输出 Enter size of the Array: 5 Enter the elements: 8 2 3 9 5 Peak element index in the Array: 3 时间复杂度:O(n) -> 一次遍历 高效方法我们上面看到,找到最大元素可以得到一个峰值元素。所有时间都花在遍历整个数组,找到所有元素的最大值。我们可以将数组分成更小的部分,并在这些部分中找到峰值元素。 因此,我们使用“分治”方法。我们将遵循二分查找的算法。 算法
代码 输出 Enter size of the Array: 5 Enter the elements: 8 2 3 9 5 Peak element index in the Array: 3 时间复杂度:O(Logn) -> 每一步,数组分成两半 -> 二分查找 迭代方法中的相同代码为什么我们必须在不使用递归的情况下使用这种方法?两个代码是相同的,但是当我们使用递归时,会使用一个隐式堆栈来跟踪递归调用;我们可以通过使用循环来消除它。因此,使用这种方法时,时间复杂度没有改变,但空间复杂度变为常数。 代码 输出 Enter size of the Array: 5 Enter the elements: 8 2 3 9 5 Peak element index in the Array: 3 下一主题将所有负元素移动到数组的一侧-C |
C语言的数据结构和算法 | 第1部分 数据结构-数组、动态数组和链表 DSA是任何编程语言中的一个非常重要的概念。假设我们有很多书,我们需要选择一个书架来整理所有的书。我们首先会检查...
11 分钟阅读
割点:移除一个特定的顶点可能会导致与之相关的图数据结构分量中的边数量增加。这些点称为割点。它们代表了机器用于遍历或预测的网络中的漏洞。为了...
7 分钟阅读
在计算机科学中,队列是一种线性数据结构,其中元素根据“先进先出”(FIFO)原则从一端插入,从另一端移除。这种数据结构可以用于控制操作顺序或存储数据。C...
5 分钟阅读
%[]符号表示scanf系列函数支持的扫描集说明符。您可以在扫描集中提供单个字符或字符范围。scanf()函数将仅处理属于扫描集的字符...
阅读 2 分钟
pow() 函数用于计算给定整数的幂。现在,本文将通过一个程序来理解如何在不使用 pow() 函数的情况下在 C 中计算整数的幂。使用 for 循环...
阅读 4 分钟
计算机编程需要输入/输出 (I/O) 操作。使用 I/O 操作,数据会从各种源(包括文件、键盘和屏幕)读取和写入。在 C 计算机语言中,I/O 操作可以是格式化的或非格式化的。在这篇博文中,我们将介绍...
阅读 4 分钟
在本文中,我们将讨论高斯-约旦方法及其示例。简介:高斯-约旦方法也称为高斯-约旦消元法。它是高斯消元法的一种修改版本,用于求解线性方程组。它与...
阅读 4 分钟
C语言打印“hello”而不使用分号我们可以不使用分号在C语言中打印“hello”或“hello world”或其他任何内容。有多种方法可以做到这一点:使用if 使用switch 使用循环等。程序1:使用if语句让我们看一个打印“hello world”的简单C语言示例...
阅读1分钟
递归是一种强大的编程方法,其中一个函数调用自身,通过将其分解为相同问题的更小、更简单的实例来解决问题,无论是直接还是间接。C 语言中的递归是通过函数实现的。让我们来看一下递归...
5 分钟阅读
在本文中,您将了解一个演示如何构建语言的项目。您将通过一个程序来学习这个概念,该程序详细说明了整个过程中发生的所有函数。什么是学生记录系统,我们为什么要使用...
阅读 51 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India