//直接插入排序
/*直接插入排序
插入排序算法的思路:
(1)将整个数组划分成两部分:有序区和无序区。初始情况下,有序区包括数组的第一元素,无序区包括剩余的其他元素。
(2)遍历无序区,每次向有序区增加一个元素,在增加元素后要保证有序区的有序性。*/
package kill;
import java.util.Arrays;
public class TestDemo10 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] array={23,1,32,87,57,33,19,7,99,13};
insrtSort(array);
System.out.println(Arrays.toString(array));
}
public static void insrtSort(int []array){
//定义有序数组的下标
int j;
//从第二个元素开始遍历数组
for(int i=1;i<array.length;i++){
//保存新增加的元素
int tmp = array[i];
for(j = i-1;j >= 0;j--){
if(array[j]>tmp){
array[j+1]=array[j];//覆盖后一位的值
}else{//每次排序后已经有序,找到第一个比temp小的;
break;//有序就跳出
}
}
array[j+1]=tmp;
}
}
}