插入排序
插入排序的工作方式非常像我们抓扑克牌。开始时我们手中的牌是空的,并且此时桌子的牌面朝下,之后我们每次抓到扑克牌之后都会将其插入到指定的位置。通常来讲我们会从头到位开始扫描,直到找到一个合适的位置,这个合适的位置就是后面的比它大,前面的比它小。
下面我们用代码进行实现:
public class InsertSort { public static void main(String[] args) { int[] nums = {5, 3, 4, 2, 6, 1, 7}; // 插入排序思想: // 1、从第二个数字开始往后遍历,(因为第一个数只有一个那么一定是排序好的) // 2、将这个数字与前面的所有数字进行比较,如果比前面的数字小则进行交换 // 3、直到遇到比当前值小或者到头...... for (int num : nums) { System.out.print(num + " "); } for (int i = 1; i < nums.length; i++) { int value = nums[i]; int j = i - 1; while(j >= 0 && nums[j] > value) { nums[j+1] = nums[j]; // 将j+1的值赋值为j的值 nums[j--] = value; // 将j的值赋值为value } } System.out.println("\r\n------- 我是分割线 ------"); for (int num : nums) { System.out.print(num + " "); } } }