插入排序

2014-06-06 23:48:45   最后更新: 2016-01-28 17:15:10   访问数量:2048




插入排序是最简单排序算法之一,其过程非常类似于玩扑克牌时排列扑克牌的过程


 

/* * file: main.c * author: 龙泉居士 * date: 2012-12-22 05:50 */ #include <stdio.h>; int insert_sort(int *array, int n) { if (array == NULL) { printf ("sort param error"); return -1; } int i, j; for (i=1; i<n; ++i) { for (j=0; j<i; ++j) if (array[i] < array[j]) break; int tmp = array[i]; int k; for (k=i; k>j; --k) array[k] = array[k-1]; array[k] = tmp; } return 0; } int main () { int i, n=10; int array[10]; printf ("Please input 10 numbers:\n"); for (i=0; i!=n; ++i) scanf ("%d", &array[i]); if (insert_sort(array, n)) return -1; for (i=0; i!=n; ++i) printf ("%d ", array[i]); printf ("\n"); return 0; }

 

时间复杂度是O(n^2),空间复杂度是O(1)

 






读书笔记      技术帖      算法      算法导论      c++      cpp      c语言      数据结构      龙潭书斋      插入排序      排序     


京ICP备15018585号