关于直接插入排序
先上代碼:
package Sort;public class InsertSort {public static void main(String[] args) {int[] nums = {6,202,100,301,38,8,1};insertSort(nums);for (int num : nums) {System.out.println(num);}}public static void insertSort(int[] nums) {int temp;int len = nums.length;for (int i = 1; i < len; i++) {if (nums[i] < nums[i - 1]) {temp = nums[i];while (i > 0 && temp < nums[i-1]) {nums[i] = nums[i - 1];i--;}nums[i] = temp;}}} }【注】在針對直接選擇排序的分析中,翻車了,忽略的內循環后的i值變化
?
此刻做出思考,既然前面的數已經有序,為什么我們非要在i值退到某一個值后再進行外層無謂的循環。因此做一下小優化:
?
?
排序的魅力還在路上,加油!!!
?
總結