给定两个数组
a[] = {1,3,2,4}
b[] = {4,2,3,1}
两个数组中的数字相同,但顺序不同。我们需要对它们两个进行排序。条件是不能比较同一数组内的元素。
a[] = {1,3,2,4}
b[] = {4,2,3,1}
两个数组中的数字相同,但顺序不同。我们需要对它们两个进行排序。条件是不能比较同一数组内的元素。
我不确定我是否正确理解了问题,但从我的理解来看,任务如下:
对给定的数组
a
进行排序,不直接比较a
中的任意两个元素。然而,我们有一个第二个数组b
,保证包含与a
相同的元素,但顺序是任意的。您不允许修改b
(否则只需对b
进行排序并返回即可...)。
如果 a
中的元素是不同的,那么这很容易:对于 a
中的每个元素,计算在 b
中有多少元素比它小。这个数字给出了按排序顺序的(从零开始的)索引。
对于元素不一定不同的情况留给读者自己思考 :)
b
的二叉搜索树,使其达到O(nlogn),但这与立即对b
进行排序是一样的... - dcn