gpt4 book ai didi

arrays - 如何以每个元素大于/小于其邻居的方式重新排列数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:24:10 26 4
gpt4 key购买 nike

例如,如果数字是:

30, 12, 49, 6, 10, 50, 13

数组将是:

[10, 6, 30, 12, 49, 13, 50]

如你所见:

  • 6 小于 10 和 30 并且
  • 49 大于 12 和 13 等等。

这些数字都是不同的,而且是真实的。我需要最高效的算法。

最佳答案

这可以在 O(n) 中完成:

  1. 在 O(n) 中找到中位数(描述见 Wikipedia
  2. 将每个大于中位数的元素放在奇数位置,将每个较小的元素放在偶数位置

当然,这假设所有元素都是不同的,否则有时会失败。

关于arrays - 如何以每个元素大于/小于其邻居的方式重新排列数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16748130/

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