ID #5693

(算法导论习题解exercise2.3-4)递归版插入排序

没什么可以多说的,直接看代码吧:

#include <stdio.h>

void display(int array[], int size)
{
    int i;
    for (i = 0; i < size; ++i)
    {
        printf("%d ", array[i]);
    }

    printf("\n");
}

void insert_sort(int array[], int size)
{
    if (size > 1)
    {
        insert_sort(array, size - 1);

        int temp = array[size - 1];
        int i;
        for (i = size - 2; i >= 0; --i)
        {
            if (temp < array[i])
            {
                array[i + 1] = array[i];
            }
            else
            {
                break;
            }
        }

        array[i + 1] = temp;
    }
}

int main()
{
    int array[] = {4,1,5,2,8};
    insert_sort(array, sizeof(array) / sizeof(int));

    display(array, sizeof(array) / sizeof(int));

    return 0;
}

BTW:我发现我写递归算法的能力不是很强,总是把握不住重点,还得多锻炼才行.


2011-07-01 18:28
阅读:
I'm VC , Just U know Y
本站部分文章来源于互联网,版权归原作者所有。

延伸阅读:

老调重提,利用SDK实现迷宫算法

几个数字信号处理算法程序

写个过河算法

CRC算法与实现

牛顿和拉格朗日插值算法