在线性时间内旋转数组的算法

2024-02-19

如何旋转整数数组i使用次数swap仅在线性时间内起作用。


您可以使用reverse() 帮助器在线性时间内完成此操作。

// rotate array of size=size, by n positions
void rotate(int array[], int size, int n)
{
  // reverse array[0...size-1]
  reverse(array, 0, size-1);

  // reverse A[0...n-1]
  reverse(array, 0, n-1);

  // reverse A[n...size-1]
  reverse(array, n, size-1);
}

// reverse elements in the array[pos_from ... pos_to]
void reverse(int array[], int pos_from, int pos_to)
{
   ...
}

实施reverse(int array[], int pos_from, int pos_to)使用交换留给读者作为练习。提示:这可以在线性时间内完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在线性时间内旋转数组的算法 的相关文章

  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • 计算两点之间的最短路线

    过去几周我一直在开发一款多人 HTML5 游戏 使用nodejs and websockets 我已经被这个问题困扰了一段时间 想象一下 我用数组实现了这个平铺地图 如下所示 1 or 棕色瓷砖 路上有障碍物 玩家无法通过 0 or 绿色瓷
  • 如何在javascript中动态向对象数组添加值?

    这是一个对象数组 var data label 1 value 12 label 1 value 12 label 1 value 12 label 1 value 12 我如何动态地为这些添加值 我尝试了以下代码但没有成功 var lab
  • 具有多个谓词的 C++11 算法

    功能如std find if来自algorithmheader 确实很有用 但对我来说 一个严重的限制是我只能为每次调用使用 1 个谓词count if 例如给定一个像这样的容器std vector我想同时应用相同的迭代find if 多个
  • 找到一条穿过任意节点序列的最短路径?

    In 这个先前的问题 https stackoverflow com questions 7314333 find shortest path from vertex u to v passing through a vertex wOP询
  • 迭代任意大小的子集

    我可以迭代大小为 1 的子集 for int a 0 a lt size a 或大小为 2 的子集 for int a1 0 a1 lt size a1 for int a2 a1 1 a2 lt size a2 or 3 for int
  • char 数组声明中字符串文字周围的大括号有效吗? (例如 char s[] = {"Hello World"})

    偶然间我发现这条线char s Hello World 已正确编译并且似乎被视为相同char s Hello World 不是第一个 Hello World 一个包含一个 char 数组元素的数组 因此 s 的声明应为char s 事实上如
  • 如何初始化一个最初大小未知的数组?

    假设我有这个 int x int x State Determined By Program const char pArray const int x 在使用 pArray 之前如何初始化它 因为Array的初始大小是由用户输入决定的 T
  • 获取向量幂的有效方法

    我编写了一个代码 在数值上使用勒让德多项式直至某个高 n 阶 例如 case 8 p 6435 x 8 12012 x 6 6930 x 4 1260 x 2 35 128 return case 9 如果向量x太长这会变得很慢 我发现说之
  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • C 中的指针、数组、字符串和 Malloc

    我目前正在学习 C 语言中的字符串 指针和数组 我尝试编写一个程序 其中数组保存三个指向字符串地址的指针 这一切似乎都有效 但程序的行为很奇怪 这是代码 char getUserDetails char host localhost cha
  • Angular JS 中的数组

    我是 Angular JS 新手 我正在将元素推送到数组中 然后想使用 ng repeat 在 html 中显示 scope groupedMedia Adding elements through a for loop scope gro
  • 以 O(1) 计算汉明权重 [重复]

    这个问题在这里已经有答案了 在二进制表示中 汉明权重是 1 的数量 我偶然发现了网络并找到了一个 O 1 的答案 v v v gt gt 1 0x55555555 v v 0x33333333 v gt gt 2 0x33333333 in
  • Postgres JSONB:数组数组的 where 子句

    postgres 中有 v 9 5 如果有的话 create table json test id varchar NOT NULL data jsonb NOT NULL PRIMARY KEY id 其中 data 是 json 并且包
  • 重新排列数组键 php [重复]

    这个问题在这里已经有答案了 我有这个数组 Array 15 gt 13 1 16 gt Mark one answer 19 gt You see a car on the hard shoulder of a motorway with
  • 选取散列第 N 个元素的最快方法

    我有一个大哈希表 带有字符串索引的数组 并正在寻找一个函数quickly从中选取第一个 理想情况下也是第 N 个 元素 array shift and reset 对于我的需求来说太慢了 UPDATE 我也不是在寻找基于引用的解决方案 该函
  • Minizinc:生成有效的转变

    希望有人能帮助我解决这个问题 最初的问题是生成有效的班次 如下所述 我有这样的数组 m m m o o l l m m m l m m m 具有固定长度 S 其中 m 是工作 o 是办公室 我自由了 我需要确保至少每 6m 就有两个 l 在
  • n 或 nlog(n) 比常数时间或对数时间更好吗?

    在 Coursera 上的普林斯顿教程中 讲师解释了遇到的常见增长顺序函数 他说 线性和线性算术运行时间是 我们努力的目标 他的推理是 随着输入大小的增加 运行时间也会增加 我认为这是他犯了错误的地方 因为我之前听过他提到线性增长顺序对于高
  • Excel:#CALC!使用 MAP 函数计算间隔重叠时出现错误(嵌套数组)

    我正在努力解决以下公式 它适用于某些情况 但不适用于所有情况 名字input有失败的数据集 得到一个 CALC 描述 嵌套数组 错误 LET input N1 0 0 N1 0 10 N1 10 20 names INDEX input 1
  • 使用随机放置的 NaN 创建示例 numpy 数组

    出于测试目的 我想创建一个M by Nnumpy 数组与c随机放置的 NaN import numpy as np M 10 N 5 c 15 A np random randn M N A mask np nan 我在创建时遇到问题mas

随机推荐

  • Matlab中使用滑块旋转图像

    我在 Matlab 中有一个 GUI 使用 GUIDE 它看起来是这样的 我想使用滑块旋转图像并实时显示变化 我使用轴来显示图像 我怎样才能做到这一点 EDIT 我正在构建 OCR 应用程序 这就是我旋转盘子时的样子 数字完全变形了 tha
  • Mac osx 10.9.2 上的 mysql-python:错误:命令“/usr/bin/clang”失败,退出状态为 1

    我想将我的 django 应用程序从 sqlite 移植到 mysql 但是当我尝试安装 mysql python 时 它给了我这个错误 错误 命令 usr bin clang 失败 退出状态为 1 我四处寻找线索并尝试了这个似乎对大多数人
  • 如何将数据从控制器传递到 ASP.net MVC 中的视图? [复制]

    这个问题在这里已经有答案了 net MVC 我需要做的事情对于我认识的每个人来说都很简单 我需要在控制器之间传递数据以在 ASP net MVC 中查看 我在控制器中编写的代码 public ActionResult Upload View
  • Bundler 未加载 gem

    我在使用 Bundler 和能够访问我的宝石而不需要在某个地方需要它们时遇到了问题 因为config gem曾经为我这样做过 据我所知 在我的 Rails 3 应用程序中 我定义了我的Gemfile像这样 clear sources sou
  • 如何用按钮更新闪亮的数据表

    我试图在用户按下 Shiny 中的按钮后简单地更新数据框的列 我对当前显示的数据帧如何传递到服务器端函数有点困惑 一旦按下按钮 列 cyl 应增加 10 如果再次按下按钮 列应采用重新计算的值并再乘以 10 依此类推 到目前为止 我已经做到
  • 如何使用 Javascript 从 JSON 文件中选择随机对象(?)?

    在我正在制作的 Discord Bot 中 它需要从 JSON 文件中选择一个随机对象 我当前的代码是这样的 function spawn if randomNum 24 return const name names randomNum
  • UISearchBar 范围栏位置?

    我在使用 iPad 应用程序 我想知道是否可以将范围栏从 UISearchBar 的右侧移动到另一个位置 我希望将范围栏放在搜索栏下方 那可能吗 提前致谢 好的 这是我的解决方案 我将实现我自己的分段控件来创建搜索范围的可能性 let ca
  • 反应本机本地通知

    我是 React Native 的新手 需要实现一个功能 应用程序需要每天在特定时间向用户发送通知 每天要显示的数据存储在客户端的json文件中 不会改变 通知已按计划进行 鉴于我希望有一种方法可以从应用程序本身触发通知 有谁知道无需将应用
  • 访问相机和照片库

    在我的 iOS 应用程序中 我有一个 ImageView 和两个用于打开相机和照片库的按钮 当我单击其中一个按钮时 应用程序将关闭 我在我的设备上运行应用程序 而不是模拟器 我的代码需要更改什么 class PhotoViewControl
  • 保留 std::set 或 std::unordered_set 上的插入顺序

    在将其标记为重复之前 我已经here https stackoverflow com questions 1098175 a stdmap that keep track of the order of insertion here htt
  • PDO bindColumn 和 PDO::FETCH_BOUND —— 强制还是可选?

    在我们的 PHP 代码的许多地方 如果重要的话可以使用 postgres 我们有这样的东西 q SELECT DISTINCT a id FROM alarms current a entities e installations i q
  • jQuery AJAX 响应设置 Cookie 标头

    我有一个使用 REST API 的项目 在这里 当我发送登录请求时 他们会以包含一些数据的 JSON 形式向我发送响应 与响应标头中的内容一起 Access Control Allow Origin Connection keep aliv
  • 在不同的元素上使用相同的控制器来引用同一个对象

    我想如果我打了一巴掌ng controller GeneralInfoCtrl 在我的 DOM 中的多个元素上 它们会共享相同的内容 scope 或者至少双向绑定不起作用 我想要这样做的原因是因为我在 HTML 的不同部分有不同的只读视图和
  • SVG 不从父级继承值

    所以这似乎是一个错误今天出现在 Chrome 中 显然还有 Firefox 我有一个 SVG 包裹在一个跨度内 我也尝试过 div 和对象标签 这似乎并不重要 并且该跨度具有指定的高度和宽度 昨天 子元素会根据其父元素的完整尺寸适当调整自身
  • 是否有一种算法可以从数组中提取二重奏中的值并对它们进行操作? [复制]

    这个问题在这里已经有答案了 我有一个像这样的数组 1 2 3 4 5 6 7 8 9 我想在二重唱中获得这样的项目 1 2 做一些操作 2 3 做一些操作 3 4 做一些操作 4 5 做一些操作 5 6 做一些操作 6 7 做一些操作 7
  • 从 Samsung Tizen TV 应用程序启动 AppStore

    我正在尝试在基于 Javascript 的 Tizen TV 应用程序中实现一个按钮 单击该按钮后 它应该打开另一个应用程序的 App Store 页面 我指的是这些文件 https developer tizen org sites de
  • UIWebView 日志消息 iOS 7 [重复]

    这个问题在这里已经有答案了 我正在开发一个使用网络浏览器的应用程序 在构建它后我收到了以下消息 UITextField webView called This method is no longer supported with the n
  • 如果模板尚未使用某种类型实例化,是否可能会触发编译器/链接器错误?

    后续问题 转换为指向模板的指针是否会实例化该模板 https stackoverflow com questions 8379002 does a casting to a pointer to a template instantiate
  • Vim:如何转到声明(类、方法、函数、变量等)

    现在我正在处理一个使用许多类 方法 函数 变量等的文件 是否可以转到所有这些的声明 请考虑到其中一些声明位于同一个文件中 但其他声明位于其他文件中 这些文件可能未打开 并且您不知道声明在哪里 但它们确实存在 如果声明在目录中为上一级 会发生
  • 在线性时间内旋转数组的算法

    如何旋转整数数组i使用次数swap仅在线性时间内起作用 您可以使用reverse 帮助器在线性时间内完成此操作 rotate array of size size by n positions void rotate int array i