/**
*选择排序的思想:
*每次循环前,数组左边都是部分有序的序列,
*然后选择右边待排元素,将其值保存下来
*依次和左边已经排好的元素比较
*如果小于左边的元素,就将左边的元素右移一位
*直到和最左边的比较完成,或者待排元素不比左边元素小
*/
packageal;
publicclassInsertionSort{
publicstaticvoidmain(String[]args){
InsertionSortinsertSort=newInsertionSort();
int[]elements={14,77,21,9,10,50,43,14};
//sortthearray
insertSort.sort(elements);
//printthesortedarray
for(inti=0;i<elements.length;i++){
System.out.print(elements[i]);
System.out.print("");
}
}
/**
*@author
*@paramarray待排数组
*/
publicvoidsort(int[]array){
//mintosavetheminimumelementforeachround
intkey;//savecurrentelement
for(inti=0;i<array.length;i++){
intj=i;//currentposition
key=array[j];
//comparecurrentelement
while(j>0&&array[j-1]>key){
array[j]=array[j-1];//shiftit
j--;
}
array[j]=key;
}
}
}