我有一个30个元素的随机有序数组,只有3个不同的键(TRUE
,FALSE
和NULL
),我想使用插入排序进行排序。什么是时间复杂性?假设最坏的情况是O(n 2 )还是O(n)假设最佳情况,因为只有3个不同的密钥?
答案 0 :(得分:2)
n 指的是数组的大小,而不是数组的可能元素。因此,复杂性是相同的:
具有3个不同的元素将减少在“插入”阶段期间必须检查的元素数量,但仅限于常数因子。这不会改变渐近运行时间。
例如,在平均情况下,它不会检查 n 元素,而是检查 n / 3 < / sub>元素。这是更好的,但不是渐近的。