就地数组重新排序?

2024-02-08

假设我有一个数组a长度n和第二个数组indices,也有长度n. indices包含序列的一些任意排列[0, n)。我想重新安排a这样它就按照指定的顺序indices。例如,使用 D 语法:

auto a = [8, 6, 7, 5, 3, 0, 9];
auto indices = [3, 6, 2, 4, 0, 1, 5];
reindexInPlace(a, indices);
assert(a == [5, 9, 7, 3, 8, 6, 0]);

这可以在 O(1) 空间和 O(n) 时间内完成吗?最好不要变异indices?


随着变异indices:(。没有看起来很难(请参阅稳定的就地合并排序)。

a = [8, 6, 7, 5, 3, 0, 9]
indices = [3, 6, 2, 4, 0, 1, 5]

for i in xrange(len(a)):
    x = a[i]
    j = i
    while True:
        k = indices[j]
        indices[j] = j
        if k == i:
            break
        a[j] = a[k]
        j = k
    a[j] = x

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

就地数组重新排序? 的相关文章

  • 如何使用 python 有效地找到两个大文件的交集?

    我有两个大文件 它们的内容如下所示 134430513125296589151963957125296589 该文件包含未排序的 id 列表 某些 id 可能会在单个文件中出现多次 现在我想找到路口两个文件的一部分 这就是两个文件中都出现的
  • 在 MongoDB 中查找具有字符串 ID 数组的文档

    我有一个 id 字符串数组 我想将其与 find 函数一起使用 db companies find id in arr arr看起来像这样 563a2c60b511b7ff2c61e938 563a2c60b511b7ff2c61e8b7
  • 在 PHP 中使用数组来比较用户名/密码

    我有以下 php 脚本 其中有一个用户名和密码 Username user1 Password pass1 if isset POST submitform Clean up the input values foreach POST as
  • 欧拉项目 45

    我还不是一名熟练的程序员 但我认为这是一个有趣的问题 我想我应该尝试一下 三角形 五边形 六边形 数字由以下生成 公式 三角形 T n n n 1 2 1 3 6 10 15 五边形 P n n 3n 1 2 1 5 12 22 35 六角
  • 如何在 C# 中获取 Json 数组?

    我有一个像这样的 Json 字符串 我想将它加载到 C 数组中 当我尝试这样做时 我收到异常 我的字符串 customerInformation customerId 123 CustomerName Age 39 Gender Male
  • 从多维无穷大数组中删除数组元素

    我想删除一个特定元素 例如 我想删除元素id 76在下面的数组中 而且 数组可以无限地组合在一起 这里的问题是我无法刷新页面 因为我使用 Vue js 进行即时操作 如果我能做到这一点 我的下一个问题可能是如何在我现在想要的地方添加一个元素
  • 使用 A 星查找路径的启发式函数

    I am trying to find a optimal solution for the following problem 每个节点内表示的数字表示为 x y 一个节点的相邻节点总是有一个y值为 当前节点 y 值 1 更改的成本为 1
  • 在矩阵/位图中查找质量簇

    这是此处发布的问题的延续 在 2D 位图上查找质心 https stackoverflow com questions 408358 finding the center of mass on a 2d bitmap正如给出的例子 它讨论了
  • 将 2D 数组追加到 3D 数组,扩展第三维

    我有一个数组A有形状的 480 640 3 和一个数组B有形状 480 640 如何将这两个附加为一个具有形状的数组 480 640 4 I tried np append A B 但它不保留维度 而axis选项导致ValueError a
  • Rust 数组是否有与 JavaScript 的 indexOf 等效的东西?

    var fruits Banana Orange Apple Mango var index fruits indexOf Apple let fruits Banana Orange Apple Mango let index fruit
  • 将相同的多个对象推送到多个数组中

    这是后续使3个数组相互对应 第一个是对象名称 https stackoverflow com questions 57564488 make 3 arrays correspond to each other with the first
  • 展平数组:保持索引、值等于数组中的位置

    我在尝试以特定方式展平数组时遇到了一些麻烦 这里有一个print r我想要展平的数组的视图 Array 1 gt Array 8 gt 1 9 gt 2 10 gt Array 15 gt Array 22 gt 1
  • 在多维数组 PHP 的所有键中搜索

    我想在多维数组中的所有键中搜索特定字符串 我只需要弄清楚它是否存在 仅此而已 我想知道访问者的 IP 是否存在于任何数组中 有没有我可以用来执行此操作的 php 函数或方法 我尝试过的每个函数或方法总是返回 false 数组中 数组搜索 数
  • 指针数组与元素数组

    今天早上我和一位同事就这个话题进行了讨论 他说 将数组分配为指针数组总是更好 因为单独分配每个元素更有机会获得空闲内存块 有点像这样 Consider n elements as a dynamic value int n elements
  • 2D形状识别与解析算法

    我正在寻找一种算法 用于从给定的一组 x y 点检测简单形状 如矩形 三角形 正方形和圆形 我还在寻找一种方法 一旦检测到 将路径转换为更干净的形状 我已经查遍了互联网 但没有找到任何 简单 的方法 几乎所有这些对于我的简单实现来说都是高级
  • 如何提高洪水填充例程的性能?

    我正在我的应用程序中实现四路洪水填充 伪代码如下 Flood fill node target color replacement color 1 If the color of node is not equal to target co
  • 这应该被称为对象切片的某种特殊情况吗?

    假设我有课Derived派生自类Base然而sizeof Derived gt sizeof Base 现在 如果分配一个数组Derived像这样 Base myArray new Derived 42 然后尝试访问n第一个对象使用 doS
  • 使用 Firebase 控制台在 Firebase 中设置数组

    I am using Firebase console for preparing data for a demo app One of the data item is attendees Attendees is an array I
  • 在 C 语言中,为什么数组的地址等于它的值?

    在下面的代码中 指针值和指针地址与预期不同 但数组值和地址则不然 怎么会这样 Output my array 0022FF00 my array 0022FF00 pointer to array 0022FF00 pointer to a
  • 声明一个负长度的数组

    当创建负长度数组时 C 中会发生什么 例如 int n 35 int testArray n for int i 0 i lt 10 i testArray i i 1 这段代码将编译 并且启用 Wall 时不会出现警告 并且似乎您可以分配

随机推荐

  • GMap.Net 在控件中不显示完整地图

    我正在尝试制作一个能够显示地图的小型应用程序 我遇到了 GMap Net 它非常适合我的目的 除了地图没有完全显示在控件中 我附上一张图片 希望您能理解我的问题 My code of the load button is private v
  • 在 swagger UI 尝试中发送动态自定义标头

    我在java中使用swagger 我正在代码中通过 requestAttributes 读取名为 callerId 的标头 我没有通过注释 HeaderParam 使用标头 由于这个原因 标题部分不会显示在 swagger UI 中进行尝试
  • 在 C# 中使用 byte/short 等有什么理由?

    超过int类型 很多代码要么使用 int 要么使用 double floats 我知道有 NET 移动版本 因此 byte short 有自己的用途 但对于桌面应用程序有什么意义吗 当我从事 C 工作 游戏编程 时 我非常了解我使用的每种数
  • Java中Thread的自定义实现:通过JNI可以吗?

    是否可以以安全 正确的方式在 Java 中 使用 JNI 实现自定义 Thread 类 假设我自己写NewThread类 与本地人start 方法 它分叉执行 调用run 在分叉线程中并返回 那可能吗 JVM 会抱怨吗 根据规范 它 合法
  • 选中时更改切换按钮的背景颜色

    我正在尝试区分单击时切换按钮的状态 我有下面的片段
  • 如何使用 Xamarin.Forms 将搜索栏添加到页面顶部,例如工具栏项目图标

    我正在此页面中使用 masterdetail 页面 我正在使用选项卡式页面 现在我想在页面顶部显示工具栏图标和搜索栏 我能够放置工具栏图标 但与搜索栏斗争 如何将其放置在其顶部行为应与 Whatsapp 应用程序和 YouTube 应用程序
  • 检查变量是否属于 Typescript 中的自定义类型

    我正在尝试检查变量是否属于某种类型 Code type GeneralType SubTypeA SubTypeB type SubTypeA type1 type2 type SubTypeB type3 type4 function s
  • 在 ggplot2 示例中绘制来自 vegan 的 ordiellipse 不起作用

    我正在尝试在 ggplot 中绘制一个带有椭圆体的 pca 双图 我在中找到了一个例子这个线程在这里 https stackoverflow com questions 13794419 plotting ordiellipse funct
  • Ninject 会调用 dispose 并关闭 NHibernate Isession 吗?

    我将 ASP NET MVC 3 与 Ninject 和 NHibernate 一起使用 当想到 DI 时 我认为获得资源的人也确保关闭它 在这种情况下 Ninject 应该负责 但我不确定 Ninject 在使用 InRequestSco
  • Google日历api CalendarList列表返回空元素

    EDIT 原来的海报要求这个C 但是无论使用什么库都会出现同样的问题 其解决方案是独立于语言 使用 C 库 string service account email protected cdn cgi l email protection
  • 对话框中存在的数字选择器 (Android)

    我正在尝试在我的应用程序中实现 NumberPicker 我希望视图如图所示对话指南 http developer android com guide topics ui dialogs html 即 当我实现数字选择器时我得到什么 另外
  • 在 Javascript 中将属性附加到冒泡事件对象

    在 Chrome Firefox 中 我可以将自定义属性附加到一个处理程序中的事件对象 并在同一事件的不同处理程序中读取它们 即使事件处理是冒泡的 我不能在 IE 中做同样的事情 当事件冒泡时 我的自定义属性丢失了 您知道是否有任何解决方案
  • 从批处理文件返回错误消息

    我正在从 VBA 对批处理文件进行脱壳 以启动 exec 文件 例如 Notepad exe 如果未找到 exec 文件 我想向 VBA 返回指示或消息 到目前为止 我一直通过让bat 将消息写入文本文件 然后让VBA 检查该文件来完成此操
  • 如何正确使用 ManagedObjectID?

    我正在尝试的是这样的 1 创建一个新的托管对象 2 获取它的临时ID myMO objectID 3 将该 ID 转换为 NSURL 以便我可以保存它以供将来参考 NSManagedObjectID moID myMO objectID N
  • Hibernate - 类级别 @Where 注释未在该类的集合上强制执行?

    我在类级别使用 Where 属性注释了 Hibernate 实体 这限制了当我直接查询它时加载哪些实体 但它似乎不适用于该类的集合 这是可以预料的吗 文档对此并不清楚 http docs jboss org hibernate core 3
  • 解析/格式化日期时间时如何控制时区偏移中“:”的出现

    我正在使用一个协议 在指定日期时间信息时可以选择包含时区偏移量 我的代码是用 C 编写的 我们使用 4 0 NET 运行时 我看到有一个格式化选项 zzz http msdn microsoft com en us library 8kb3
  • 如何将嵌套字典转换为 pandas 数据框

    我正在尝试转换包含其他数据帧的数据帧 例如 id 3241234 data name carol lastname netflik office num 3543 department trigy 我尝试使用 pd DataFrame fr
  • Typo3 版本 8 登录循环

    我有一个关于 Typo3 版本 8 LTS 的问题 我已经通过安装程序工具安装并配置了 TYPO3 但是 当我在安装后尝试登录时 登录过程会卡住 我得到的唯一信息是登录按钮显示 验证登录数据 旁边有一个旋转的加载符号 有人可以帮我解决这个问
  • Ajax FormData 追加列表对象

    您好 我在将数据发布到控制器时遇到问题 现在我有以下一个模型 public class Media public int Id get set public string Category get set public string Gui
  • 就地数组重新排序?

    假设我有一个数组a长度n和第二个数组indices 也有长度n indices包含序列的一些任意排列 0 n 我想重新安排a这样它就按照指定的顺序indices 例如 使用 D 语法 auto a 8 6 7 5 3 0 9 auto in