반응형

개념

- 배열에서 최소값을 선택하여 제일 앞으로 이동시켜 정렬하는 알고리즘.

private void selectionSort(int[] list, ParamMap paramMap) {
	int indexMin, temp;
	// 1. 배열의 최소값 위치 설정(indexMin)
	for (int i=0; i<list.length-1; i++) {
		indexMin = i;
		// 2. 탐색 중, 기존 최소값보다 작은 값이 존재한다면, 해당 값이 존재하는 위치를 최소값 위치로 설정
		for (int j=i+1; j <list.length; j++) {
			if (list[j] < list[indexMin]) {
				indexMin = j;
			}
		}
		// 3. 최소값이 존재하는 위치와 현재 정렬을 수행하는 위치의 값을 서로 교환(swap)
		temp = list[indexMin];
		list[indexMin] = list[i];
		list[i] = temp;
	}
}

 

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

반응형

'Algorithm > 기본' 카테고리의 다른 글

계수 정렬(counting sort)  (0) 2021.05.04
병합 정렬(merge sort)  (0) 2021.04.29
퀵 정렬(quick sort)  (0) 2021.04.28
삽입 정렬(insertion sort)  (0) 2021.04.26
버블 정렬(bubble sort)  (0) 2021.04.25

+ Recent posts