有没有人知道一种可以对数组进行k近似排序的算法?
我们被要求找到一种k近似排序的算法,它应该在O(n log(n/k))的时间复杂度内运行,但我似乎找不到任何合适的。
K近似排序意味着对于一个数组和任意的1 <= i <= n-k,满足 sum a[j] <= sum a[j] i<=j<= i+k-1 i+1<=j<= i+k。
有没有人知道一种可以对数组进行k近似排序的算法?
我们被要求找到一种k近似排序的算法,它应该在O(n log(n/k))的时间复杂度内运行,但我似乎找不到任何合适的。
K近似排序意味着对于一个数组和任意的1 <= i <= n-k,满足 sum a[j] <= sum a[j] i<=j<= i+k-1 i+1<=j<= i+k。
我知道我回答得很晚...但是假设k是在0到1之间的近似值(当0表示完全未排序,而1表示已完美排序),那么这个问题的答案肯定是快速排序(或归并排序)。
考虑以下数组:
[4, 6, 9, 1, 10, 8, 2, 7, 5, 3]
[4, 6, 2, 1, 3, 9, 7, 10, 8]
O(N log(N/1)) = O(N log(N))
。
sum a[j] <= sum a[j] i<=j<= i+k-1 i+1<=j<= i+k
都成立。 - Abdullah Raya