插入排序
2019-08-30 18:28
1291 查看
插入排序
将数组分为两个区间,已排序区间与未排序区间,初始已排序区间只有第一个元素,其核心思想是取未排序区间的元素,在已排序好的区间合适的位置插入,保证已排序数据一直有序,重复这个过程,直到未排序区间中元素为空。
package suanfa; public class InsertionSort { public static void InsertionSort01(int[] arr) { if (arr == null || arr.length < 2) { return; } for (int i = 1; i < arr.length; i++) { for (int j = i - 1; j >= 0 && arr[j] > arr[i]; j--) { //j >= 0 不越界 swap(arr, i, j); } } } public static void swap(int[] arr, int i, int j) { int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } public static void main(String[] args) { int[] arr = { 0, 51, -94, 65, 888 }; System.out.println(java.util.Arrays.toString(arr)); InsertionSort01(arr); System.out.println(java.util.Arrays.toString(arr)); } }