将数组元素从左到右依次声明为监视哨,如果小于左侧则交换位置,直到实现从小到大的排序
#include <stdio.h> int main(void) { int a[11],i; for(i=1;i<11;i++) { scanf("%d",&a[i]); } for(i=1;i<11;i++) { printf("%5d",a[i]); } printf("\n"); insort(a,10); for(i=1;i<11;i++) { printf("%5d",a[i]); } printf("\n"); return 0; } int insort(int s[],int n) { int i,j; for(i=2;i<=n;i++) { s[0] = s[i]; j = i - 1; while(s[0] < s[j]) { s[j+1] = s[j]; --j; } s[j+1] = s[0]; } }