gpt4 book ai didi

arrays - 如何就地洗牌

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:35:03 25 4
gpt4 key购买 nike

有一个奇偶数相等的数组。这些数字没有按特定顺序存储。是否可以就地打乱数组(O(1) 额外空间),以便偶数指向偶数索引,奇数指向奇数索引?

当然,使用辅助存储实现起来很简单,不使用辅助存储的限制使它变得困难。另外没有模式,在诸如将数组 [a1,a2,a3..an,b1,b2...bn...n1,n2,n3...nn] 改组为[a1,b1,c1..n1,a2,b2,c2...n2,...an,bn...nn],有一个固定的映射,可以做到它。但是这里没有这样的模式,它是否可行?

最佳答案

写两个迭代器。一个在偶数位置迭代奇数的所有数组索引。另一个在奇数位置迭代所有偶数。

同时迭代两者,并交换迭代器指向的项目,直到数组末尾。应该有 O(n) 性能。

关于arrays - 如何就地洗牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12886545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com