使用二进制搜索计算要插入的数据的位置时,插入排序的最坏情况下的时间复杂度是多少?
(A) N
(B) NlogN
(C) N ^ 2
(D) N(logN)^ 2答案: (C)
说明:应用二进制搜索来计算要插入的数据的位置并不会减少插入排序的时间复杂度。这是因为在适当位置插入数据涉及两个步骤:
1.计算位置。
2.将数据从步骤1中计算出的位置向右移动一级,以在其中插入数据的位置创建一个间隙。
使用二进制搜索可以将步骤1中的时间复杂度从O(N)降低到O(logN)。但是,步骤2中的时间复杂度仍然保持O(N)。因此,总体复杂度仍为O(N ^ 2)。
这个问题的测验