Javaソートアルゴリズム[ソートの挿入]
1581 ワード
package cn.com.dom4j.sort;
import java.util.Arrays;
public class Test2 {
/*
N - 1 , p = 1 N - 1 , 0 p - 1
: p , p , p + 1
*/
public static > void insertionSort_1(AnyType[] arr) {
for (int i = 1; i < arr.length; i++) {
for (int j = i; j > 0 && arr[j].compareTo(arr[j - 1]) < 0; j--) {
swap(arr, j, j - 1);
}
}
}
/*
:
p , ,
:
p , , p , (a[j] = a[j-1]), p .
p ( p )
*/
/**
*
*/
public static > void insertionSort_2(AnyType[] a) {
int j;
for (int p = 1; p < a.length; p++) {
AnyType tmp = a[p];
for (j = p; j > 0 && tmp.compareTo(a[j - 1]) < 0; j--)
a[j] = a[j - 1];
a[j] = tmp;
}
}
/**
*
*/
public static > void swap(AnyType[] arr, int i, int j) {
if (arr == null || arr.length <= 1 || i == j) {
return;
}
AnyType tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}