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