插入排序的基本方法是:每步將一個待排序的元素,按其排序碼大小,插入到前面已經排好序的一組元素的適當位置上去,直到元素全部插入爲止。可以選擇不同的方法在已經排好序的有序數據表中尋找插入位置。依據查找方法的不同,有多種插入排序。下面介紹直接插入排序
直接插入排序的基本思想:當插入第i(i >= 1)個元素時,前面的V[0],V[1],......,V[i-1]已經排好序,這時,用V[i]的排序碼與V[i-1],V[i-2],...的排序嗎順序比較,找到插入位置即將V[i]插入,原來位置上的元素向後順移。
程序:
void InsertSort(int* arr,int n)
{
for (int i = 1; i < n; i++)
{
int tmp = arr[i];//要插入的數據
int j;//插入的位置
for (j = i;j>0&&(arr[j-1]>tmp);j--)//升序
{
arr[j] = arr[j-1];//前後互換
}
arr[j] = tmp;
}
}