排序,是将一组随意排列的数据元素又一次排列成一个按键值有序的序列的过程,一般以键值的比較和记录移动为标准操作。排序是程序设计的基础。它往往是为检索服务的。一个优秀的算法离不开切实情景的排序方法。
1.分类:
排序有两种:
内部排序(InternalSorting):待排序的记录所有存放在计算机内存中进行排序的过程
外部排序(ExternalSorting):指待排序记录的数量非常大。以至于内存不能容纳所有记录。在排序过程中尚需外存进行訪问的排序过程
我们通常所说的5大排序,是编程者运用到程序中的排序方法,一般也被觉得是内部排序的分类
2.时间复杂度、空间复杂度、稳定性
在描写叙述排序算法的同一时候。少不了时间复杂度、空间复杂度以及稳定性三方面的度量。
(1)时间复杂度:
最坏时间复杂度:指算法在全部输入下的计算量的最大值作为算法的计算量
平均时间复杂度:指算法在全部输入下的计算量的加权平均值作为算法的计算量
(2)空间复杂度:指一个算法除输入数据占存储空间之外所须要的附加存储空间的大小
(3)稳定性:在排序过程中同样的数据元素前后位置不变动,则是该排序算法是稳定的,否则称为不稳定
排序前3在3前边,排序后还在二者前后顺序不变。则称用到的排序方法是稳定的
3.小结:
排序算法是程序设计的重中之重。眼下为止。排序方法远不止几种。人们热衷于研究各种排序方法,一是由于它在算法中占有很重要的位置;二是各种算法各有优缺点,可依据须要运用到不同的场合。当然。这也是作为一名优秀程序猿的必经之路