使用C++重新排列数组顺序 – 最小值、最大值、第二小值、第二大值

使用c++重新排列数组顺序 - 最小值、最大值、第二小值、第二大值

我们得到一个数组;我们需要按以下顺序排列此数组:第一个元素应该是最小元素,第二个元素应该是最大元素,第三个元素应该是第二个最小元素,第四个元素应该是第二个最大元素,依此类推示例 –

Input : arr[ ] = { 13, 34, 30, 56, 78, 3 }Output : { 3, 78, 13, 56, 34, 30 }Explanation : array is rearranged in the order { 1st min, 1st max, 2nd min, 2nd max, 3rd min, 3rd max }Input : arr [ ] = { 2, 4, 6, 8, 11, 13, 15 }Output : { 2, 15, 4, 13, 6, 11, 8 }

寻找解决方案的方法

可以使用两个变量“x”和“y”来解决它们所指向的位置到最大和最小元素,但是对于该数组应该是排序的,所以我们需要先对数组进行排序,然后创建一个相同大小的新空数组来存储重新排序的数组。现在迭代数组,如果迭代元素位于偶数索引,则将 arr[ x ] 元素添加到空数组并将 x 加 1。如果该元素位于奇数索引,则将 arr[ y ] 元素添加到空数组空数组并将 y 减 1。执行此操作,直到 y 变得小于 x。

示例

#include using namespace std;int main () {   int arr[] = { 2, 4, 6, 8, 11, 13, 15 };   int n = sizeof (arr) / sizeof (arr[0]);   // creating a new array to store the rearranged array.   int reordered_array[n];   // sorting the original array   sort(arr, arr + n);   // pointing variables to minimum and maximum element index.   int x = 0, y = n - 1;   int i = 0;   // iterating over the array until max is less than or equals to max.   while (x <= y) {   // if i is even then store max index element      if (i % 2 == 0) {         reordered_array[i] = arr[x];         x++;      }      // store min index element      else {         reordered_array[i] = arr[y];         y--;      }      i++;   }   // printing the reordered array.   for (int i = 0; i < n; i++)      cout << reordered_array[i] << " ";   // or we can update the original array   // for (int i = 0; i < n; i++)   // arr[i] = reordered_array[i];   return 0;}

输出

2 15 4 13 6 11 8

上述代码说明

变量初始化为x=0 和 y = array_length(n) – 1。while( x如果计数为偶数 (x),则将该元素添加到最终数组,并且变量 x 递增1。如果 i 是奇数,则将 (y) 该元素添加到最终数组中,并且变量 y 减 1。最后,存储重新排序后的数组在reordered_array[]中。

结论

在本文中,我们讨论了以最小、最大形式重新排列给定数组的解决方案。我们还为此编写了一个 C++ 程序。同样,我们可以用任何其他语言(如 C、Java、Python 等)编写此程序。我们希望本文对您有所帮助。

以上就是使用C++重新排列数组顺序 – 最小值、最大值、第二小值、第二大值的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
第n个卡塔兰数的C/C++程序是什么?
上一篇 2025年12月17日 22:05:41
活动选择问题的C程序
下一篇 2025年12月17日 22:05:49

相关推荐

  • 感谢您的记忆

    认识我的人都知道我的记忆力绝对是垃圾。任何缺少 monty python 对白和 90 年代另类摇滚乐队曲目列表的内容,我都无法接受。 然而,对我们来说幸运的是,计算机在记住事物方面的能力要强得多。 概念 我们今天讨论的技术称为记忆化。让我们从讨论纯函数开始。纯函数背后的想法是,无论你给它什么输入,…

    2025年12月19日
    000
  • LeetCode 的 JavaScript 时代实际上填补了空白

    大多数编码挑战都会教你解决难题。 leetcode 的 30 天 javascript 学习计划做了一些不同的事情:它向您展示了拼图如何变成砖块,准备好构建现实世界的项目。 这种区别很重要。当您解决典型的算法问题时,您正在训练您的思维进行抽象思考。但是,当您实现去抖1函数或构建事件发射器2时,您正在…

    2025年12月19日
    000
  • Nextjs、React 和 Gatsby 中的高级渲染技术:针对经验丰富的开发人员的综合指南

    简介 现代 Web 开发在很大程度上依赖于提高性能的渲染技术、搜索引擎优化 (SEO) 和动态内容管理。本文深入探讨了 Next.js、React 和 Gatsby 背景下的渲染技术。它详细介绍了开发人员如何利用框架构建卓越的 Web 应用程序。 渲染策略 1。客户端渲染 (CSR)在 CSR 中,…

    2025年12月19日
    000
  • 在 React JS 项目中设置 Tailwind CSS

    如果您还没有 react 应用程序,请创建一个: npx create-react-app my-appcd my-app 安装 tailwind css运行以下命令安装 tailwind css 及其依赖项: npm install -d tailwindcss postcss autoprefi…

    2025年12月19日
    200
  • React 中的受控组件与非受控组件

    受控组件:通过 state 或 props 控制表单元素状态的 react 组件,即每个状态突变都会有一个关联的处理函数。 特点 由state - 元素值控制的值绑定到状态变量需要事件处理程序 - 要更新状态,您需要事件处理程序可预测 - 由于组件状态代表输入值,因此组件是可预测的且易于调试reac…

    2025年12月19日
    000
  • NestJS 等

    大家好! 值班时,我有多个合作者和同事,告诉我他们需要一个法语网站(很快就会被翻译,但我仍在寻找人来做),我们可以轻松学习语言和框架等等… 我和我的一个朋友期待着并开始制作一些 HTML 页面,其中包括我们对语言的注释,我们想让它清晰易读,所以我请我亲爱的朋友 GPT 给它一个组成内容就…

    2025年12月19日
    000
  • agilbo 让敏捷项目管理变得轻松

    在当今快节奏的商业世界中,适应性和效率对于成功至关重要。企业不仅必须提供高质量的产品,还必须快速响应不断变化的需求。敏捷产品项目管理已成为一种改变游戏规则的方法,使团队能够协作、适应并交付卓越的结果。 Agilibo 凭借其创新平台,提供了完美的工具包来支持企业采用敏捷方法并实现其目标。 了解敏捷产…

    2025年12月19日
    100
  • 理解 JavaScript/TypeScript 中的桶模式

    在大型 javascript 和 typescript 项目中,随着代码库的增长,组织模块并使导入易于管理对于可维护性和可扩展性变得至关重要。桶模式提供了一种简单但有效的方法来简化模块导出和导入,特别是在具有复杂目录结构的项目中。在这篇文章中,我们将深入研究桶模式,了解其优点,并了解如何在 type…

    2025年12月19日
    000
  • React 最终稳定、新的基于 Rust 的 JavaScript 框架、新的开发人员工具等等

    欢迎来到另一版“JavaScript 本周”! 我们将讨论 React 的最新稳定版本、Boa 的最新性能飞跃以及使您的开发工作流程更加顺畅的工具。 React 19:异步功能变得简单 React 19 正式稳定!以下是使该版本成为开发者游戏规则改变者的原因: 操作:新功能可轻松处理表单提交、错误状…

    2025年12月19日
    000
  • 我的开发者之旅,记录在我的新作品集中

    嘿开发者,我刚刚推出了我的作品集!看起来怎么样? 我很高兴分享我的开发者组合终于上线了!经过无数个小时的设计、编码和调整,它已经投入使用。这是我的技能、项目以及关于我作为开发人员的一些信息的展示。 我希望得到您的反馈由于你们是我的开发同事,我知道你们对细节很有洞察力。如果您能看一下并告诉我,我将不胜…

    2025年12月19日
    000
  • Qwik 可恢复性解释

    Qwik 中的可恢复性是一个革命性的概念,它最大限度地减少了需要在客户端下载和执行的 JavaScript 数量。 它允许 Qwik 应用程序从服务器上中断的位置“恢复”,而无需在客户端上重播或补充整个应用程序状态。 以下是 Qwik 中可恢复性的解释: 1。带有应用程序状态的预渲染 HTML: Q…

    2025年12月19日
    000
  • Osita 是一位熟练的开发人员,擅长 JavaScript,在 React、Node、Express 方面拥有专业知识

    欢迎来到我的世界 大家好,我是 Christopher Osita,一位充满激情的全栈开发人员、企业家,也是 Siitecch(发音为“see-tech”)背后的创造力。我的职业生涯致力于让技术变得简单、易于使用且有意义。无论您来这里是为了更多地了解我的旅程、我的专业知识,还是我对未来的愿景,欢迎光…

    2025年12月19日
    100
  • JavaScript 5 期热门面试问题和答案

    要破解 JavaScript 面试问题,您需要了解一些基本且重要的问题。这些问题将帮助您应对任何面试或技术考试。在这篇文章中,我提到了与 JavaScript 相关的前 20 个问题。 1. JavaScript 的定义是什么? JavaScript 是一种动态编程语言。它用于创建动态网页。您可以将…

    用户投稿 2025年12月19日
    000
  • 我制作了一个免费的博客封面图片工具

    我制作了一个免费的博客封面图片工具我制作了一个免费的博客封面图片工具我制作了一个免费的博客封面图片工具我制作了一个免费的博客封面图片工具

    我创建了一个免费工具来为您的文章和网站制作图像。它的名字叫 og image maker。 我用 React.js 构建了它,它通过以编程方式创建 SVG 来工作,然后您可以将其下载为 PNG 格式。 以下是一些您可以使用网站编辑的 OG 图像: 您可以编辑文本、颜色、图像、按钮、背景。几乎一切! …

    2025年12月19日 用户投稿
    000
  • 构建 Expressjs 后端服务应该很容易!

    构建 node.js api 服务应该很容易,但许多开发人员在需要启动新的后端服务时却遇到了困难。每个月都会有新的方法来设置您的 node.js 项目、新的身份验证或安全性最佳实践、新框架,或者您最喜欢的 npm 包自上次使用以来发生了重大更改。 每次我与使用 Node.js 的后端开发人员交谈时,…

    2025年12月19日
    000
  • JavaScript 中 return 和 return wait 的区别

    您可能会认为这两种方法是相同的。但 return 和 return wait 之间有一个至关重要的区别。 当我们处理promise时,比如数据库查询,我们通常使用await。例如: async function getuserbyid(userid) { const user = await use…

    2025年12月19日
    000
  • 理解面向对象编程中的上帝对象

    介绍 在面向对象编程 (oop) 中,开发人员努力追求干净、模块化的代码,并遵守单一职责和封装等原则。然而,有一种反复出现的反模式可以将代码库变成维护噩梦:上帝对象。 god object 是一个承担了太多职责的对象,成为各种不相关操作的中心点。虽然最初看起来很方便,但随着时间的推移,它会导致紧密耦…

    2025年12月19日
    000
  • 受 Jira 启发,如何在 React 中构建可折叠的侧面内容

    有多种选项可用于显示用户所需的额外内容,例如用于创建新记录或编辑现有记录的表单。 UI/UX 最佳实践是不要让屏幕上出现不必要的选项,除非用户确实需要它们。因此,您可以向用户显示不同类型的对话框,例如模式、抽屉等。 模式的一个缺点是它们隐藏内容。它们非常适合用户想要创建新记录,但不适合编辑现有记录。…

    2025年12月19日
    000
  • Odoo 全栈开发者面试经历

    上个月,我通过 Odoo 的官方网站申请了 Odoo 的全栈开发人员职位。令人惊讶的是,第二天我就接到电话和电子邮件,邀请我参加在线测试。以下是我的面试过程的详细介绍,以及一些为准备在 Odoo 担任类似职位的人提供的一些见解。 第一轮:在线测试 测试混合了技术问题和解决问题的问题。其中包括: 1.…

    2025年12月19日
    000
  • 将循环转换为递归:模板和尾递归解释

    递归和循环都是在编程中实现重复任务的基本工具。虽然 for 和 while 等循环对于大多数开发人员来说都很直观,但递归提供了一种更抽象、更灵活的解决问题的方法。本文探讨了如何将循环转换为递归函数,提供通用模板,并解释尾递归的概念和优化。 理解递归 什么是递归? 递归是一种函数调用自身来解决同一问题…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信