排序算法的稳定性是指在待排序的序列中,存在多个相同的元素,若经过排序后这些元素的相对词序保持不变,即Xm=Xn,排序前m在n前,排序后m依然在n前,则称此时的排序算法是稳定的。
先介绍一下常见的排序算法: 直接插入排序、简单选择排序、冒泡排序、快速排序这四种排序.
一、直接插入排序
算法思路: 先将序列中第1个记录看成一个有序子序列, 然后从第2个记录开始,逐个进行插入,直至整个序列有序,排序过程为n-1躺插入.
// 直接插入排序
void insertSort(int arr[], int n)
{
int i, j, temp;
// i 从 1开始遍历, 角标为0的元素默认为有序列表
for (i = 1; i < n; i++)
{
// temp保存未排序元素
temp = arr[i];
// j初始为i前面的元素角标,从后往前遍历有序表中元素,
// j>=0,不能越界(有序表) &&