插入排序
算法原理:在数组的的有序区中找到待排序的元素要插入的位置,将该位置后面的元素整体后移,将待排序的元素插入该位置,重复以上步骤,直到倒排序的元素全部插入完成为止。
图示:
代码:
void InsertSort(int a[], int n) { for (int i = 1; i < n; i++) { int temp = a[i];//待插入的数据并存入temp int j = i - 1;//待插入的数据前一个数据的位置 while (temp < a[j] && j >= 0)//在待插入的数据前面排好序的序列中找到要插入的位置 { a[j + 1] = a[j];//将要插入位置后面的数据整体后移一位,为新插入的数据腾出空间 j--; } a[j + 1] = temp;//插入数据 } }