排序算法的稳定性:排序算法稳定性的简单形式化定义为:如果Ai = Aj,排序前Ai在Aj之前,排序后Ai还在Aj之前,则称这种排序算法是稳定的。通俗地讲就是保证排序前后两个相等的数的相对顺序不变。(冒泡,直接插入排序,归并排序是稳定的,简单选择排序,希尔排序,堆排序,快排是不稳定的。)
#鸡尾酒排序
1 | int A[] = { 6, 5, 3, 1, 8, 7, 2, 4 }; // 从小到大定向冒泡排序 |
#冒泡排序
1 | int A[] = { 6, 5, 3, 1, 8, 7, 2, 4 }; // 从小到大冒泡排序 |
#快速排序
1 |
|
#插入排序
1 |
|
#二分插入排序
1 |
|
#希尔排序
1 | int A[] = { 5, 2, 9, 4, 7, 6, 1, 3, 8 };// 从小到大希尔排序 |
#归并排序
1 | int L[10]; // 两个子数组定义成全局变量(辅助存储空间,大小正比于元素的个数) |
#堆排序
1 |
|
v1.5.2