C++ 数组旋转的翻转算法17 Mar 2025 | 4 分钟阅读 问题陈述: 给定一个数组,您的任务是按给定的整数次数将数组旋转一步。旋转数组意味着将数组的第一个元素移动到数组的末尾,这样第一个元素就出现在最后一个位置,而其他每个元素都向左移动。 为了更清楚地说明,我们可以这样理解这个问题。首先,取出索引为 0 的元素,然后索引为 1 的元素向左移动,这意味着它将占据索引 0。同样,索引为 2 的元素将占据索引 1。通过这种方式,所有元素都将向左移动,最后一个索引将变为空闲,因此这个索引将被最初从数组中取出的第一个元素替换。这个整个操作应该重复给定的次数。 输入格式整数数组 int[] array 旋转次数 n 输出打印 n 次旋转后的数组 示例说明数组 = {10, 20, 30, 40, 50, 60, 70, 80} 次数 = 4; 初始数组:{10, 20, 30, 40, 50, 60, 70, 80} 一次旋转后:{20, 30, 40, 50, 60, 70, 80, 10} 第二次旋转后:{30, 40, 50, 60, 70, 80, 10, 20} 第三次旋转后:{40, 50, 60, 70, 80, 10, 20, 30} 第四次旋转后:{50, 60, 70, 80, 10, 20, 30, 40} 示例上述问题的解决方案如下所示 输出 ![]() 说明这个程序包含两个函数:一个是 main 函数,另一个是用于反转数组的函数。这个程序用于旋转数组。首先,程序要求用户输入数组的长度。之后,它要求用户输入要存储在数组中的元素。输入元素后,它要求输入对数组进行旋转的次数。现在,我们调用名为 reverseFunction 的函数,它接受三个参数:整数数组、起始索引和结束索引。因此,这个 reverseFunction 用于从起始索引到结束索引反转给定的整数数组。第一次调用时,参数是数组、零、以及比旋转次数小一的数。然后,再次调用 reverseFunction,参数是数组、旋转次数、以及比数组大小小一的数。之后,最后一次调用 reverseFunction,参数是整数数组、零、以及比数组大小小一的数。完成这一步后,数组将被旋转,然后将打印出结果数组。 reverseFunction 的功能。它接受一个数组和两个索引作为输入。使用一个 while 循环,它交换第一个和最后一个索引处的元素,并向中心移动。这个过程有效地反转了这些索引之间的数组部分。通过迭代交换元素,直到第一个和最后一个索引相遇,该函数实现了完全反转。这种方法基于简单的交换逻辑,展示了计算机编程中广泛用于数组操作和旋转等任务的基本技术。其效率在于其直接的方法,使其在数组反转操作中既直观又实用。 结论总之,这个 C++ 程序使用反转算法高效地将数组旋转指定的位数。它提供了一个直观的用户界面,允许无缝输入并准确地展示旋转后的数组。该代码清晰地展示了对数组操作技术的理解,提供了一个实用的解决方案。 |
简介:在本文中,任务是找出给定数组中索引范围内的所有可能子数组的按位与操作结果之和。按位与是一种操作,它接受两个二进制数并对每一位执行逻辑与操作...
11 分钟阅读
面向对象编程 (OOP) 是一种强大的范式,它允许开发人员在代码中模拟现实世界的事物和交互。在 C++ 中,这是最流行的编程语言之一,创建和交互对象至关重要。在这篇文章中,我们将探讨过程...
阅读 4 分钟
stoi 是一个 C++ 标准库函数,用于将字符串转换为整数。它代表“string to integer”。它接受一个字符串作为输入并返回相应的整数值。如果输入字符串无效,该函数可能会引发 std::invalid_argument 类型的异常...
阅读 2 分钟
在本文中,我们将讨论 C/C++ 中的 strxfrm() 函数及其语法和示例。strxfrm() 函数是什么?strxfrm() 函数是 C/C++ 库中的一个函数。它用于在转换源字符串中的字符后将其插入目标字符串...
阅读 2 分钟
在此示例中,我们将讨论如何使用 C++ 中的正则表达式验证文件扩展名,并提供几个示例。介绍:图像文件验证在许多应用程序中都是一项非常重要的任务,尤其是在处理用户上传或外部数据源时。验证图像文件扩展名可确保...
7 分钟阅读
在本文中,您将通过示例了解 C++ 中二叉树的直径。连接二叉树中任意两个节点最长路径的边数允许我们计算二叉树的直径。二叉树的直径...
5 分钟阅读
本节将讨论在 C++ 编程语言中反转数组的不同方法。反转数组意味着更改给定数组元素的顺序。这种技术将数组的最后一个元素反转为第一个,而...
5 分钟阅读
本文旨在介绍 C++ 编程语言的标准模板库,其中我们已经看到了操作函数的用法。由于 C++ STL 浩瀚如海,本文讨论了一些关键函数,如 merge()、operator"="、sort()、unique()、...
阅读 3 分钟
C++ 提供了大量的数据结构,以实现高效灵活的编程。两个常用的容器是 `Forward List` 和 `List`,它们各有其特点和用途。在本文中,我们将讨论 `Forward List` 和……之间的区别。
阅读 6 分钟
引言:随着信息时代的到来,产生了海量数据。由于需要保护人们的隐私,保护敏感信息变得越来越重要。因此,信息在网络传输和系统内存存储过程中受到保护的方式...
11 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India