web developer

[JAVA] 선택정렬 (오름차순, 내림차순) 본문

Algorithm

[JAVA] 선택정렬 (오름차순, 내림차순)

trueman 2021. 12. 1. 15:50
728x90
728x90
선택정렬의 정의

선택 정렬은 오른쪽 리스트에서 가장 작은 숫자를 선택하여 왼쪽 리스트로 이동하는 작업을 되풀이한다.

선택 정렬은 오른쪽 리스트가 공백 상태가 될 때까지 이 과정을 되풀이하는 정렬 기법이다


 

선택정렬의 순서 

1) 주어진 배열 중에 최소값을 찾습니다.

2) 그 값을 맨 앞에 위치한 값과 교체합니다. (pass)

3) 맨 처음 위치를 뺀 나머지 배열을 같은 방법으로 교체합니다.

4) 하나의 원소만 남을 때까지 위의 1~3 과정을 반복합니다.

 

선택 정렬의 장점

- 데이터의 양이 적을 때 좋은 성능을 나타냄.

- 작은 값을 선택하기 위해서 비교는 여러번 수행되지만 교환횟수가 적다.

 

선택 정렬의 단점

- 100개 이상의 자료에 대해서는 속도가 급격히 떨어져 적절히 사용되기 힘들다.

 

 

출처: https://devuna.tistory.com/28 [튜나 개발일기]

 

 

 


public class Sorting {
	public static void main (String args[]) {
   		int data[] = {9, 6, 7, 3, 5};
    		for(int i=0; i<data.length-1; i++){
    			int min_index = i;
    			for(int j=i+1; j<data.length; j++){
    				if(data[min_index] > data[j]){
    					min_index = j;
    				}
    			}	
                        int tmp = data[min_index];
                        data[min_index] = data[i];
                        data[i] = tmp;
                    }

                    for(int i=0; i<data.length; i++) {
                        System.out.print(data[i]);
                        if(i+1 != data.length) {
                            System.out.print(", ");
                        }
                    }
                }
            }

 

728x90
728x90