【发布时间】:2013-05-19 17:52:27
【问题描述】:
你会得到一个从文件中读取的 100 个整数的列表。如果所有值都为零,那么选择排序算法的运行时间(以 O 表示法表示)是多少。
我认为它是 O(n),因为选择排序从最左边的数字作为排序侧开始。然后它遍历数组的其余部分以找到最小的数字并将其与排序侧的第一个数字交换。但是因为它们都是零,所以它不会交换任何数字(或者我认为)。
我的老师说是O(n^2)。谁能解释一下为什么?
【问题讨论】:
-
即使它不交换,它仍然必须搜索所有内容以找到最小的数字。然后它必须搜索 n-1 个项目,然后是 n-2 个等,总共 O(n^2)。
标签: performance sorting selection