基本做法:在插入第i个记录时,R1,R2,…Ri-1已经有序了,这时将Ri的关键字ki依次与关键字ki-1,ki-2等进行比较,从而找到应该插入的位置。
代码如下所示:
public int[] InsertSort(int[] nums){
int i,j;
int temp;
for(i = 1; i < nums.length; i++ ){
if(nums[i] < nums[i-1]){
temp = nums[i];
nums[i] = nums[i-1];
for(j = i-1;j > 0 && nums[j] > temp;j--){
nums[j+1] = nums[j];
}
nums[j+1] = temp;
}
}
return nums;
}
测试:输入 int[] nums = new int[]{1,2,4,2,1,7,3,6};
输出 1 1 2 2 3 4 6 7