算法思想: |
---|
每次将一个待排序的记录按其关键字大小插入到前面已排好序的子序列中,直到插入完成。 |
public class 直接插入排序 {
public static void main(String[] args) {
int nums[]={6,1,3,2,4};
sort(nums);
System.out.println(Arrays.toString(nums));
}
static void sort(int[]nums){
int j ;
for (int i=1;i<nums.length;i++){
if (nums[i]<nums[i-1]){
int temp = nums[i];
//此处注意j,注意判断条件 j>=0 因为j--会<0,且j>=0要放在前面
for ( j=i-1; j>=0 && temp<nums[j] ; j--){
nums[j+1]=nums[j]; //注意j
}
//注意j,此处j+1是因为上述循环退出时,j--了
nums[j+1]=temp;
}
}
}
}