/* * sort2.c * * Created on: Nov 8, 2012 * Author: fsxchen */#include int * input(int n);int * sort(int *num, int len);int *input(int n){ int i; int num[n]; for(i = 0; i < n; ++i) { printf("[%d]:Please input: ", (i + 1)); scanf("%d", &num[i]); } return num;}int *sort(int *num, int len){ int key, i, j; for(i = 1; i <= len; ++i) { key = num[i]; for(j = i - 1; j >= 0; --j) { if(key < num[j]) { num[j + 1] = num[j]; num[j] = key; } } } return num;}void ArrPrintf(int *num, int len){ int i; for(i = 0; i < len; ++i) printf("%d\t", num[i]); printf("\n");}int main(){ int len; int *num; int *newnum; printf("please input the totle num:"); scanf("%d",&len); num = input(len); newnum = sort(num, len); ArrPrintf(newnum, len); return 0;}
插入法排序的实现,主要是一个key,将要插入的值放入key中,然后和之前已经排好序的数组作比较。找到合适的位置插入。