版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q__y__L/article/details/53787459
插入排序是一种很基本的排序,其复杂度为
O(n2)
,在大一学编程时没有多想,为什么不能利用二分查找改进为
O(nlogn)呢
?
问题描述:
我们都知道插入排序就是在已有的序列上不断地插入新的元素,我们都知道二分查找的时间复杂度是
如上图,a为原始序列,b为已排序,假设我们进行到c出,通过二分查找找到下一个要插入的元素位置,确实可以在
你可能会问:如果用链表保存已排序的序列,在插入时不就是常数复杂度吗?但是此时就不能用二分查找了,而在链表中找到有插入位置,仍然需要