심심한잉여의 잡동사니

[알고리즘]선택 정렬(Selection Sort) 본문

코딩일기/코딩테스트 연습

[알고리즘]선택 정렬(Selection Sort)

심심한잉여 2022. 3. 26. 22:34
반응형

선택 정렬 알고리즘

public class SelectionSort {

	public static void main(String[] args) {
		
		int[] tab = {1,5,11,2,100};
		
		for(int i=0;i<tab.length-1;i++) {
			
			for(int j=i+1;j<tab.length;j++) {
				
				if(tab[i]>tab[j]) {
					
					int temp = tab[i];
					
					tab[i] = tab[j];
					
					tab[j] = temp;
					
				}
				
			}
			
		}
	
		for(int i : tab) {
        
			System.out.print(i+" ");
			
		}
		
	}
	
}

선택 정렬은 위 코드와 같이 첫 for문에서 선택 된 숫자를 두 번째 for문을 통해 전부 비교를 하며 tab[i]가 tab[j]보다 크면 tab[j]하고 자리를 바꾸는 식으로 로직이 진행된다.

짧은 배열에서는 손쉽게 할 수 있는 정렬이지만 성능은 좋은 편이 아니기에 긴 배열의 정렬로는 맞지 않다.

시간복잡도는 O(n^2)이다.

반응형