`
yyang900427
  • 浏览: 11245 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

插入排序

阅读更多
/**
 * 插入排序有一个已经有序的数据序列,要求在这个已经排好的数据
 * 序列中插入一个数,但要求插入后此数据序列仍然有序,这就是插入
 * 排序,插入排序算法时间复杂度为O(n) ~ O(n ^ 2),平均为O(n ^ 2)
 */
 
#include <stdio.h>

void insert_sort(int array[], int n)
{
    int tmp, i, j;

    for(i = 1; i < n; ++i)
    {   
        // 记录当前待插入元素
        tmp = array[i];
    
        for(j = i; j > 0 && tmp < array[j - 1]; --j)
        {
            array[j] = array[j - 1];
        }
        array[j] = tmp;
    }
}

main()
{
    int array[] = {100, -1, 37, 0, 4, 6};
    insert_sort(array, 6);
    for(int i = 0; i < 6; ++i)
        printf("%d ", array[i]);
}

运行结果: -1 0 4 6 37 100 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics