2013-05-19 32 views
1

給出從文件中讀取的100個整數的列表。如果所有值均爲零,則選擇排序算法的運行時間(以O標記表示)將是多少。選擇排序的大(0)運行時間

我認爲這是O(n),因爲選擇排序從最左邊的數字開始,作爲排序的一面。然後它通過數組的其餘部分找到最小的數字,並將其與排序側的第一個數字交換。但因爲它們都是零,所以它不會交換任何數字(或者我認爲)。

我老師說是O(n^2)。誰能解釋爲什麼?

+0

即使它不換,它仍然有通過一切搜索找到的最小數目。然後它必須搜索n-1個項目,然後搜索n-2個項目,總共需要O(n^2)個項目。 – harold

回答

1

選擇排序不適應。每個元素將總是與每個其他元素進行比較(比較n個元素與其他n個元素→ n^2比較)。因此,選擇排序總是有O(n^2)比較。然而,它有O(n)掉期。

想象一個有n行和n列的表格,每個單元格需要一個比較來填充值(除了對角線)。

More info on this amazing website