插入排序

插入排序的思想类似于打扑克(这个我比较喜欢)

抓到的第一张牌是有序的

接下来抓到大的放右边,抓到小的放左面

从而实现整个数组的排序

插入排序适用于每个元素离它最终位置都不远的情况

void InsertSort(int* arr,int size)
{
    if(arr == NULL || size <= 0) return ;

    int i;         //无序的第一个元素 
    int j;      //有序的最后一个元素 
    int temp;
    for(i=1;i<size;i++)
    {
        temp = arr[i];
        j = i-1;
        while(temp < arr[j] && j >= 0)
        {
            arr[j+1] = arr[j];
            j--;
        }

        arr[j+1] = temp;

    }
}
原文地址:https://www.cnblogs.com/TheQi/p/9103529.html