算法导论 之 插入排序[C语言]

来源:互联网 发布:南京聚铭网络怎么样 编辑:程序博客网 时间:2024/04/30 03:43

1 算法实现

  插入排序的时间复杂度为O(n^2),其排序过程就如同打牌时抓牌的过程。其实现算法如下:

int insert_sort(int *array, int num){int i=0, j=0;for(j=2; j<num-1; j++){i = j-1;array[0] = array[j]; /* array[0]为哨兵 */while(array[i] < array[0]){array[i+1] = array[i];i--;}array[i+1] = array[0];}return 0;}

代码1 插入排序

2 算法调用

#define ARRAY_NUM (10)int main(int argc, void *argc){int idx = 0;int array[ARRAY_NUM] = {0, 9, 8, 7, 6, 5, 4, 3, 2, 1};insert_sort(array, ARRAY_NUM);for(idx=1; idx<ARRAY_NUM; idx++){fprintf(stdout, "array[%d] = %d\n", idx, array[idx]);}return 0;}
原创粉丝点击