排序算法一:插入排序
关于排序的一些定义
稳定性
对于待排序表中的元素$R_i$和$R_j$,其对应的关键字相等,即$key_i=key_j$,且$R_i$在$R_j$前面。使用某一排序算法后,$R_i$仍然在$R_j$前面,则这个排序算法是稳定的。
举个🌰:对于数组[4,25,2,
6
,6,8,34,24],经过排序算法一排序后结果为[2,4,6
,6,8,24,25,34],经过排序算法二排序后结果为[2,4,6,6
,8,24,25,34]。则说明,排序算法一具有稳定性,而排序算法二不具有稳定性。
稳定性不是衡量排序算法优劣的标准,它是排序算法的一个性质。如果待排序表中的关键字不允许重复,则稳定性就无关紧要。
内部排序与外部排序
内部排序指排序期间元素全部放在内存中的排序,外部排序指排序期间无法全部同时存放在内存中,必须在排序过程中根据要求不断的在内、外存之间移动的排序。
排序算法大致可分为插入排序、交换排序、选择排序、归并排序和基数排序五大类。