/**
* 直接插入排序
* @author TMAC-J
* 思路:详情见百度百科,解释的很清楚
* 这里没有对向后移动做优化,有兴趣的可以自己做做
*
*/
public class InsertSort {
private int[] array;
public InsertSort(int[] array) {
this.array = array;
}
/**
* 按从小到大的顺序排列
*/
public void calculate(){
for(int i = 1;i<array.length;i++){
for(int j = 0;j<i;j++){
if(array[i]<array[j]){
int temp = array[i];
//向后移动
for(int k = i-1;k>=j;k--){
array[k+1] = array[k];
}
array[j] = temp;
}
}
}
}
public static void main(String[] args) {
int[] a = {10,9,8,7,6,5,4,3,2,1};
InsertSort insertSort = new InsertSort(a);
insertSort.calculate();
for(int i = 0;i<a.length;i++){
System.out.println(a[i]);
}
}
}