我到处都读过关于诸如Merge-Sort和的分治制排序算法Quicksort,而不是递归直到只剩下一个元素,最好转移到Insertion-Sort达到某个阈值(例如30个元素)时。很好,但是为什么Insertion-Sort呢?为什么不这样做,Bubble-Sort或Selection-Sort两者都有相似的O(N^2)性能呢?Insertion- Sort仅在对许多元素进行预排序时才应该派上用场(尽管该优势也应附带Bubble-Sort),但否则,为什么它比其他两个元素更有效?
Merge-Sort
Quicksort
Insertion-Sort
Bubble-Sort
Selection-Sort
O(N^2)
Insertion- Sort
其次,在此链接的第二个答案及其随附的评论中,它说O(NlogN)与O(N^2)某一项相比,性能较差N。怎么会?N^2应该总是比N 差N log N,因为N > log N对于所有N> =2,对吗?
O(NlogN)
N
N^2
N log N
N > log N