/*insertion sort 26/04/13 20:15 */ #include<iostream> #include<cstring> using namespace std; int array[1000]; void insertsort(int a[],int len){ int i,j,key; for(i=1;i<len;i++){ //已知array[0..i-1]已排序,将A[i]插入使得A[0..i]成为新的已排序数组 key=array[i]; for(j=i-1;j>=0;j--){ if(key<array[j]){ array[j+1]=array[j]; } else break; //这个非常关键啊,如果没有此语句,在没有交换的时候会发生错误!!!! } array[j+1]=key; } } int main(){ int num; while(1){ memset(array,0,sizeof(array[0])); cin>>num; for(int i=0;i<num;i++) cin>>array[i]; insertsort(array,num); for(int i=0;i<num;i++) cout<<array[i]<<" "; cout<<endl; } return 0; }