算法是一组完成任务的指令。
算法与数据结构相辅相成。任何给定的任务都可以以无数种方式实现。因此,对于常见的任务,人们通常会提出许多不同的算法。
例如,对一组无序数进行排序的算法有很多:
插入排序、选择排序、归并排序、冒泡排序、堆排序、快速排序、Shell 排序、Tim 排序、桶排序、基数排序……
它们有的执行效率高。有的占用内存少。有的实现容易。有的是专门针对特定数据集。
每种排序都有其特点。因此,需要根据需求做出选择,为此,需要一种比较它们的方法,一种衡量它们不同场景下优劣的方法。
当我们比较算法的性能时,我们使用大 O 复杂度表示法粗略地测量它们的平均和最坏情况的性能。
运行