我目前正在尝试为100个项目的Arraylist优化排序算法。问题是我的列表中有一个不变量,即它的前半部分总是与自己相对......
(即{1,1,4,5,6,2,1,11,4,3},因为前5项是相对有序的。)
为了利用这个功能,我正在考虑只对列表的右半部分进行排序,然后按顺序合并这两部分。我的理由是,通过仅排序列表的一半然后合并,我可以实现(m lg(m)+ n)的时间复杂度,其中m = n / 2.这是否使得大哦复杂度优于O(nlg) (n))或将(m lg(m)+ n)最终减少到O(nlg(n))?
任何有关此问题的重要信息或对此问题的最有效方法的任何见解将不胜感激。