GIF demonstration
Source code demonstration
import java.util.Arrays;
public class code03_InsertionSort {
public static void main(String[] args) {
int[] array = generateRandomArray(100, 100);
int[] test = copyArray(array);
Arrays.sort(test);
compareArray(insertionSort(array), test);
}
public static int[] insertionSort(int[] array) {
if (array == null || array.length < 2) {
return null;
}
for (int i = 1; i < array.length; i++) {
for (int j = i - 1; j >= 0 && array[j] > array[j + 1]; j--) {
swap(array, j, j + 1);
}
}
return array;
}
public static void swap(int[] array, int i, int j) {
array[i] = array[i] ^ array[j];
array[j] = array[i] ^ array[j];
array[i] = array[i] ^ array[j];
}
public static int[] generateRandomArray(int maxSize, int maxValue) {
int[] array = new int[(int) ((maxSize + 1) * Math.random())];
for (int i = 0; i < array.length; i++) {
array[i] = (int) (maxValue * Math.random());
}
return array;
}
public static void compareArray(int[] array1, int[] array2) {
if (!Arrays.equals(array1, array2)) {
System.out.println("No equals!!");
} else {
System.out.println("Success!!");
}
}
public static int[] copyArray(int[] array) {
int[] tmp = new int[array.length];
System.arraycopy(array, 0, tmp, 0, array.length);
return tmp;
}
}