정렬된 숫자를 앞으로 보내보자. 그러면 앞의 숫자들은 정렬이 돼 있으므로 최선의 경우 정렬이 다 돼있다면 실행횟수는 0이다.
위에 적은 것은 pseudo code에 추가함.
pseudo code를 틀리게 짰는데, DESC로는 먹혔다. 그 이유는 뒤에서부터 앞으로 가는 방향으로 j를 탐색해야 했는데, 앞으로부터 뒤로 짜니까 뒤로 쭉 밀렸던 것.
for loop 하나면 되지 왜 2개가 필요한지 헷갈렸었다.
j가 0 1 2 3 4 가 필요한거 아닌가?
--> j 의 값이
0
01
012
0123
01234 이런식으로 필요하므로
i <- 0 to 5
   j <- 0 to 5
i <- 0 to data.length
 j <- i to 0
   if data[j] data[j-1]
    switch data[j] data[j-1]
package SortSeries;
public class InsertionSort {
    public static void main(String args[]){
        int[] data = {4,642,1123,24,532,12,56,7};
        int[] result = insertDESC(data);
        for(int i : result){
            System.out.print(i + " ");
        }
    }
    static int[] insertDESC(int data[]){
        int temp;
        for(int i=0;i<data.length;i++){
            for(int j=0;j<i;j++){
                if(data[j]<data[j+1]){
                    temp = data[j];
                    data[j]=data[j+1];
                    data[j+1]=temp;
                }
            }
        }
        return data;
    }
    static int[] insertASC(int data[]){
        int temp;
        for(int i=0;i<data.length;i++){
            for(int j=i;j>0;j--){
                if(data[j]<data[j-1]){
                    temp = data[j];
                    data[j]=data[j-1];
                    data[j-1]=temp;
                }
            }
        }
        return data;
    }
}