举例说明,插入排序就像是打扑一样,每次从剩余牌中摸一张牌,插入自己手里已经排好序的排里。
用算法考虑,即就是每次从未排序数组中按顺序一个一个抽出来,然后在已排序的数组中比较,放在合适的位置上。
具体做法:从数组第二位开始,若第二位小于第一位,则将其位置调换若第二位大于第一位,则判断下一位直接,不用再遍历一遍数组。
/**
* 插入排序
* @param sum 需要排序的数组
*/
public void insertSort(int sum[]) {
for(int i=1;i<sum.length-1;i++) {
for(int j=i+1;j>0&&sum[j]<sum[j-1];j--) { // 当排序完成后跳出循环,不用再遍历一遍数组。
temp = sum[j];
sum[j] = sum[j-1];
sum[j-1] = temp;
}
}
}