algorithm - 根据与不同顺序的相同元素的另一个数组的比较对数组进行排序

标签 algorithm sorting

给定两个数组

a[] = {1,3,2,4} 
b[] = {4,2,3,1} 

两者的编号相同,但顺序不同。 我们必须对两者 进行排序。条件是您不能比较同一数组中的元素。

最佳答案

我可以给你一个基于快速排序的O(N*log(N))时间复杂度的算法。

  1. 随机选择数组A中的一个元素a1
  2. 使用a1对数组B进行分区,注意只需要将数组B中的每个元素都与a1进行比较即可
  3. 分区返回位置 b1。用b1对数组A进行分区(同步骤2)
  4. 如果分区的子数组的长度大于 1,则转到步骤 1。

时间复杂度:T(N) = 2*T(N/2) + O(N)。所以根据主定理,整体复杂度为 O(N*log(N))。

关于algorithm - 根据与不同顺序的相同元素的另一个数组的比较对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7273919/

相关文章:

algorithm - 从椭圆到静态多边形集的距离

python - 自动将长 if 语句压缩为短语句

algorithm - 从封闭频繁项集生成计数

java - 使用键升序排序arraylist

objective-c - NSComparator 错误 : incompatible block pointer types initializing

java - 仅当匹配阈值字节时才在映射中填充字符串值

python - 识别马尔可夫生成内容的算法?

c - C语言排序程序

Javascript - 改进对象集合的排序

c - 排序算法的c实现