排序那点事
概念
排序:将杂乱无章的数据元素,通过一定的方法(排序算法)按关键字顺序排列的过程叫做排序。
衡量标准
稳定性:待排序的记录序列中可能存在两个或两个以上的关键字相等的记录,排序结果可能会存在不唯一的情况,所以排序之后,如果相等元素之间原有的先后顺序不变,则称所用的排序方法是稳定的,反之则称之为不稳定的。
稳定排序可以在第一个关键字排序的结果上,根据第二个关键字排序中而保持数值相等的那些数的顺序。
内排序和外排序:内排序是在排序的整个过程中,待排序的所有记录全部被放置在内存中。外排序是由于排序的记录个数太多,不能同时放置在内存中,整个排序过程需要在内外存之间多次交换数据才能进行,常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。
影响内排序的性能指标,时间性能,辅助空间,算法的复杂性
时间性能
在我们的排序算法执行过程中,主要执行两种操作比较和交换,比较是排序算法最起码的操作,移动指记录从一个位置移动到另一个位置。所以我们一个高效的排序算法,应该尽可能少的比较和移动。
辅助空间
执行算法所需要的辅助空间的多少,也是来衡量排序算法性能的一个重要指标
算法的复杂度
这里的算法复杂度不是指算法的时间复杂度,而是指算法本身的复杂度,过于复杂的算法也会影响排序的性能。