💅世间语遇见文字✨遇见爱互联网@时事传播

「算法原理与实现」插入排序(Insertion Sort)

2019-10-08  本文已影响0人  307656af5a04

插入排序具体实现

////////////////////////////////////////////////////////////////////////////
// 插入排序
///////////////////////////////////////////////////////////////////////////

// brief: 插入排序
// @param:[in]      numbers          待排序的数组
// @param:[in]      n                排序数组的长度
// @returnValue     int                表示返回值的标记 
int InsertionSort(int *numbers, int n)
{
    if(numbers == NULL)
        return -1;
        
    int i = 0, j = 0, temp = 0;
    for(i = 1; i < n; i++) // 循环遍历每一个元素
    {
        temp = numbers[i]; // 将numbers[i]赋值给temp
        j = i - 1;
        while(j >= 0 && temp < numbers[j]) // 由小到大排序
        {
            numbers[j + 1] = numbers[j];  // 将大的元素向前放
            j--;
        }
        // 如果插入的数比之前的大,将numbers[j] 与 numbers[j + 1]互换
        numbers[j + 1] = temp;
    }
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读