단순 선택 정렬

황희윤·2023년 10월 16일

단순 선택 정렬(straight selection sort)

가장 작은 요소부터 선택해 알맞은 위치로 옮겨서 정렬

static int[] numbers = {3,4,2,0,1};

static void swap(int a, int b){
	int temp = numbers[a];
    numbers[a] = numbers[b];
    numbers[b] = numbers[a];
}

static void selectionSort(){
	for(int i = 0; i < numbers.length - 1; i++){
    	int min = i; // min : 아직 정렬되지 않은 부분의 가장 작은 요소 인덱스
        for(int j = i + 1; j < numbers.length; j++)
        	if(numbers[min] > numbers[j])
            	min = j;
        swap(i, min); // 아직 정렬되지 않은 부분의 첫 요소와 가장 작은 부분을 바꾼다.
    }
}

시간 복잡도: O(n^2)

하지만 배열의 요소 값이 중복인 경우 중복인 요소의 순서가 바뀔 수 있기에 안정적이지 않다.

profile
HeeYun's programming study

0개의 댓글