add insert sort
This commit is contained in:
		| @@ -12,13 +12,19 @@ import java.util.Arrays; | ||||
|  */ | ||||
| public class InsertSort { | ||||
|  | ||||
|     /** | ||||
|      * ①. 从第一个元素开始,该元素可以认为已经被排序 | ||||
|      * ②. 取出下一个元素,在已经排序的元素序列中从后向前扫描 | ||||
|      * ③. 如果该元素(已排序)大于新元素,将该元素移到下一位置 | ||||
|      * ④. 重复步骤 3,直到找到已排序的元素小于或者等于新元素的位置 | ||||
|      * ⑤. 将新元素插入到该位置后 | ||||
|      * ⑥. 重复步骤②~⑤ | ||||
|      */ | ||||
|     public static void sort(int[] arr) { | ||||
|         for (int i = 1; i < arr.length; i++) { | ||||
|             for (int j = i - 1; j >= 0; j--) { | ||||
|                 int tmp = arr[j]; | ||||
|                 if (arr[j + 1] < arr[j]) { | ||||
|                     arr[j] = arr[j + 1]; | ||||
|                     arr[j + 1] = tmp; | ||||
|                     swap(arr, j, j + 1); | ||||
|                 } else { | ||||
|                     break; | ||||
|                 } | ||||
| @@ -28,6 +34,16 @@ public class InsertSort { | ||||
|         System.out.println(Arrays.toString(arr)); | ||||
|     } | ||||
|  | ||||
|     public static void swap(int[] arr, int i, int j) { | ||||
|         // arr[i] = arr[i] + arr[j]; | ||||
|         // arr[j] = arr[i] - arr[j]; | ||||
|         // arr[i] = arr[i] - arr[j]; | ||||
|  | ||||
|         int tmp = arr[i]; | ||||
|         arr[i] = arr[j]; | ||||
|         arr[j] = tmp; | ||||
|     } | ||||
|  | ||||
|     public static void main(String[] args) { | ||||
|         sort(new int[]{4, 9, 1, 6, 8, 2}); | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user