삽입 정렬

YU·2021년 11월 27일
0

알고리즘

목록 보기
2/2

눈으로 먼저 확인하기!

import java.util.ArrayList;
import java.util.Collections;
import java.lang.Math;

/*  [의사 코드]
    if(1번째 숫자와 0번째 숫자 비교 1번째 숫자가 더 작으면) {
        1번째 숫자와 0번째 숫자 자리 변경
    } else {
        종료
    }
    
    if(2번째 숫자와 1번째 숫자 비교 2번째 숫자가 더 작으면) {
        2번째 숫자와 1번째 숫자 변경
        
        if(1번째 숫자와 0번째 숫자 비교 1번째 숫자가 더 작으면) {
            1번째와 0번째 변경
        } else {
            종료
        }
    } else {
        종료    
    }
    
    if(3번째 숫자와 2번째 숫자 비교 3번째 숫자가 더 작으면) {
        3번째 숫자와 2번째 숫자 변경
        
        if(2번째 숫자와 1번째 숫자 비교 2번째 숫자가 더 작으면) {
            2번째 숫자와 1번째 숫자 변경
            if(1번째 숫자와 0번째 숫자 비교 1번째 숫자가 더 작으면) {
                1번째와 0번째 변경
            } else {
                종료
            }
        } else {
            종료    
        }
    } else {
        종료
    } 
*/

public class InSertionSort {
    public static void main(String args[]) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        
        // Math.random() : 0이상 1미만의 부동소숫점 값을 가져올 수 있다.
        for(int index = 0; index < 30; index++){
            list.add((int)(Math.random() * 100));
        }
        
        for(int i = 1; i < list.size(); i++) {
            int index = i;
            
            for(int j = i - 1; j >= 0; j--) {
                
                if(list.get(index) < list.get(j)) {
                    Collections.swap(list, index, j);
                    index--;
                    continue;
                } else {
                    break;
                }
                
            }
            
        }
        
        System.out.println(list);
    }
}
profile
Web Developer

0개의 댓글