我最近在課堂上學習了基本排序(氣泡排序,插入排序和選擇排序),並且與運行時間有點混淆。小學排序運行時間比較
在老師給我們的作業上,一個問題問: 「3個基本排序中哪一個對所有鍵完全相同的文件運行速度最快?對於具有相反數據的文件,怎麼辦?
對於問題的第一部分,我不完全確定他們是什麼意思的「鑰匙」。那麼,這是否意味着有一個包含多個數據的大小爲1的數組?我不認爲「鍵」與「數據」是一樣的。我知道如果所有的數據都是有序的,那麼插入排序會是最快的,但我不確定這會對問題產生什麼影響。
對於問題的第二部分,我認爲這將是選擇排序,因爲無論數據中的反轉次數如何,都需要進行不斷的比較。插入排序和冒泡排序會導致交換過多。
我大多隻是對問題的第一部分感到困惑。
你在正確的軌道上。當被排序的集合中的所有內容都是相同的[['a','a','a','a',..]',即不交換時,哪個算法是最快的。當設置爲倒序時,哪個算法最快,即。許多掉期。 – deanosaur
因此插入排序爲第一個,並選擇第二個? – user3421510
我認爲你是正確的插入排序會很好,當幾乎沒有掉期,也就是說,當集合已經大多數排序。當有大量掉期交易時,您的選擇排序可能會更好。但是,除非您使用小數據集,否則這兩個算法都不會執行mergesort。 – deanosaur