原理如下:
代码如下:
#includevoid InsertSort(int a[],int n){ int i,j; for(i=2;i<=n;i++){ //第一趟插入排序只有a[1]是有序的,第二趟a[1]-a[2]有序,依次类推 if(a[i]a[0];j--){ //如果要a[j]比temp大则后移,同时j要大于0保证如果元素序列都比temp大则temp插入a[0] a[j+1]=a[j];//元素右移 } a[j+1]=a[0]; //赋值到该插入位置 } } } int main() { int a[]={0,49,38,65,97,76,13,27,49}; InsertSort(a,8); for(int i=1;i<9;i++){ printf("%3d",a[i]); } }



