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