我用C语言编写了一些排序方法,我想找出程序对每个算法进行分析的最佳输入大小但我该怎么做呢?我知道每种方法的时间,但我不知道如何找到它的“最佳”大小。
最佳答案
排序算法没有一个最佳值。
对于纯执行时间而言,几乎每种排序算法在2个数的集合上都是最快的,但在大多数情况下它并不有用。
一些排序算法可能对较小的数据集更有效,但这并不意味着它们在该大小下是“最优”的。
有些分类对数据的其他特性也可能起到更好的作用。有些排序在数据几乎已经排序的情况下可以非常高效,但如果没有排序,可能会非常慢其他人将在任何给定大小的集合上运行相同的程序。
更有用的是查看排序的大o(如o(n^2)、o(n logn)等)和排序所具有的任何特殊属性,如对几乎排序的数据进行操作。
关于c - 如何分析排序算法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6254881/