一 概述
排序,即重新排列列表中的元素,使得表中的元素满足按关键字有序的过程。从而使得查找变得方便。
二 算法的分类
在排序的过程中,根据排序数据元素是否完全在内存中,可以将排序算法分为内部排序和外部排序,即:
- 内部排序:排序期间元素全部存放在内存中的排序。
- 外部排序:排序期间元素无法全部同时存放在内存中,必须在排序的过程中根据要求不断地在内,外存之间移动的排序。
一般情况下,内部排序算法在执行的过程中都要进行比较和移动操作(基数排序除外,基数排序是不基于比较实现)。通过比较两个关键字的大小,确定对应元素的前后关系,然后通过移动元素以达到有序。
每种排序算法都有各自的优缺点,适合在不同的环境下适用,就其全面性而言,很难提出一种被认为是最好的算法。此外内部排序算法的性能取决于算法的时间复杂度和空间复杂度,而时间复杂度一般是由比较和移动的次数决定的。