我很好奇是否有公式/规则来查找排序算法中的比较总数,特别是合并排序、选择排序和插入排序。我非常肯定,对于选择排序,规则是n(n-1)/2,其中n是被排序的元素的数量。我认为插入排序的情况也是如此,但根据我参加的实践Java测试,情况显然并非如此(根据答案键,插入排序列出了6个条目,进行了14次比较,与选择的排序进行了15次比较)。所以我现在很困惑。
发布于 2018-12-05 03:19:23
一般来说,由于以下几个原因,没有精确的公式:
当然,不存在“一刀切”的公式,它涵盖了(比如说)相同复杂性类中的所有算法。
一条线索:如果排序算法的最佳或最坏情况复杂度与其平均复杂度不同,则比较次数或移动次数取决于输入。
https://stackoverflow.com/questions/53624602
复制相似问题