public class InsertionSort { public static void main(String args[]){ int[] data={ 50,49,48,47,46,45,44,43,42,41, 40,39,38,37,36,35,34,33,32,31, 30,29,28,27,26,25,24,23,22,21, 20,19,18,17,16,15,14,13,12,11, 10,9,8,7,6,5,4,3,2,1 }; /* * key=data[1];i=1; * { * 对于data[0..i]里,插入key=data[i] * for(j=i-1..0]){ * 如果有data[j]<key.停止 * 否则data[j]->data[j-1]然后j-- * } * j+1就是该插入的位置 * i++; * } */ int key,i,j; for(i=1;i<data.length;i++){ key=data[i]; for(j=i-1;j>=0;j--){ if(data[j]<key) { break; } else{ data[j+1]=data[j]; } } data[j+1]=key; } for(i=0;i<data.length;i++){ System.out.print(" "+data[i]); if(i==0&&i!=0) System.out.println(""); } } }