这道题,已知一个数组a,a[i]排好序后位于a[i-k]跟a[i+k]之间,问说该怎么最快地排序。
可以转换成多路归并问题,
a[0]<a[k+1]<a[2k+2]<a[3k+3]...
a[1]<a[k+2]<a[2k+3]<a[3k+4]...
...
a[k]<a[k+(k+1)]<a[2k+(k+2)]<a[3k+(k+3)]...
多路归并后的算法复杂度是O(nlogk)。
这道题,已知一个数组a,a[i]排好序后位于a[i-k]跟a[i+k]之间,问说该怎么最快地排序。
可以转换成多路归并问题,
a[0]<a[k+1]<a[2k+2]<a[3k+3]...
a[1]<a[k+2]<a[2k+3]<a[3k+4]...
...
a[k]<a[k+(k+1)]<a[2k+(k+2)]<a[3k+(k+3)]...
多路归并后的算法复杂度是O(nlogk)。