关于几乎排序的数组的插入排序,它需要线性时间。但是只有在我们的实现中有一个if条件才能在数组被排序的情况下突破循环之后,对吧?
对于小数据集的插入排序,为什么插入排序是可取的?由于汇总到快速排序和合并排序的比较/操作数量较少?
答案 0 :(得分:1)
是的,它几乎在几乎排序的数组上需要线性时间,因为你很早就打破了比较循环。一旦将元素插入到正确的位置,就不需要遍历已排序数组的其余部分。
我想这是因为你正在利用有关已排序数组的知识,而在quicksort中,你将每个元素都放到正确的位置,然后对其余元素进行排序。