package demo.sort;
import java.util.Arrays;
/**
* 插入排序: 待排序和已排序兩組
*/
public class Insertion {
/**
* 數組元素排序: 小元素在左邊, 大元素在右邊
* @param arr
*/
public static void sort(Comparable[] arr){
for(int i = 1; i < arr.length; i++){
for(int j = i; j > 0; j--){
if(greater(arr[j-1],arr[j])){
exch(arr, j-1, j);
}else {
break;
}
}
}
}
/**
* a.greater(b)
* a>b 返回true
* @param a 實現Comparable接口的類對象
* @param b 實現Comparable接口的類對象
* @return
*/
public static boolean greater(Comparable a, Comparable b){
return a.compareTo(b) > 0;
}
/**
* 交換數組元素: 索引i和索引j的值互換
* @param arr
* @param i
* @param j
*/
public static void exch(Comparable[] arr, int i, int j){
Comparable temp;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void main(String[] args) {
Integer[] arr = {6,5,4,3,2,1};
sort(arr);
System.out.println(Arrays.toString(arr));
}
}