通常人們整理橋牌的方法是一張一張的來愁铺,將每一張牌插入到其他已經(jīng)有序的牌中的適當(dāng)位置。在計(jì)算機(jī)的實(shí)現(xiàn)中,為了給要插入的元素騰出空間,我們需要將其余所有元素在插入之前都向右移動(dòng)一位魁衙。這種算法叫做插入排序。
public class InsertSort {
private static final int[] nums = { 5, 4, 7, 3, 1, 0};
public static void main(String[] args) {
sort();
}
private static void sort() {
int length = nums.length;
for (int i = 1; i < length; i++) {
int num = nums[i];
int j = i - 1;
while (j >= 0 && nums[j] > num) { //前面只要有元素比num大的株搔,都需要往后挪動(dòng)位置
nums[j + 1] = nums[j];
j = j - 1;
}
nums[j + 1] = num; //最后的位置就是num該插入的位置
printArray(nums);
}
}
static void printArray(int arr[]) {
int n = arr.length;
for (int i = 0; i < n; ++i){
System.out.print(arr[i] + " ");
}
System.out.println();
}
}