我遇到了以下问题:
假设我修改了4n个不同数字的给定排序列表,如下所示:
将元素保持在偶数位置(位置2,4,6,... 4n)。在奇数编号的位置上形成n个不相交的对(i,j),其中对于某些k = 0到n-1,i = 2k + 1,对于某些k = n到2n-1,j = 2k + 1。
现在在每个这样的对中交换位置i和j中的元素。 (即,数组前半部分奇数编号位置的每个元素与数组后半部分奇数编号位置的某个元素交换。多个交换中不涉及任何元素(即交换是不相交的)你不知道这些(i,j)对,除了在数组的前半部分中奇数编号位置的元素与后半部分中奇数编号位置的某个元素交换。现在给出一个元素x,解释如何在O(logn)时间内确定x是否在(new reshu ffl ed)数组中。
老实说,我不知道如何处理这个问题。给定x,我可以使用二分搜索搜索它是否存在于任何偶数位置。但奇数位置的数字不再排序。
感谢任何帮助。谢谢!