我最近在课堂上学习了基本排序(气泡排序,插入排序和选择排序),并且与运行时间有点混淆。小学排序运行时间比较
在老师给我们的作业上,一个问题问: “3个基本排序中哪一个对所有键完全相同的文件运行速度最快?对于具有相反数据的文件,怎么办?
对于问题的第一部分,我不完全确定他们是什么意思的“钥匙”。那么,这是否意味着有一个包含多个数据的大小为1的数组?我不认为“键”与“数据”是一样的。我知道如果所有的数据都是有序的,那么插入排序会是最快的,但我不确定这会对问题产生什么影响。
对于问题的第二部分,我认为这将是选择排序,因为无论数据中的反转次数如何,都需要进行不断的比较。插入排序和冒泡排序会导致交换过多。
我大多只是对问题的第一部分感到困惑。
你在正确的轨道上。当被排序的集合中的所有内容都是相同的[['a','a','a','a',..]',即不交换时,哪个算法是最快的。当设置为倒序时,哪个算法最快,即。许多掉期。 – deanosaur
因此插入排序为第一个,并选择第二个? – user3421510
我认为你是正确的插入排序会很好,当几乎没有掉期,也就是说,当集合已经大多数排序。当有大量掉期交易时,您的选择排序可能会更好。但是,除非您使用小数据集,否则这两个算法都不会执行mergesort。 – deanosaur