기사 디렉토리
시간 및 공간 복잡도 분석 - 선택 정렬 알고리즘
대충
선택 정렬 알고리즘이란?
선택 정렬 알고리즘은 각 숫자와 그 뒤에 오는 모든 숫자를 비교하여 현재 위치에 가장 큰 숫자 또는 가장 작은 숫자를 넣는 알고리즘입니다.
코드 부분
public class select {
public static void main(String[] args) {
int[] arr = {79,3213,3,5,45,65};
selectfFunction(arr);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static void selectfFunction(int[] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[i]) {
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
}
}
이에 대한 시간복잡도 분석 및 공간복잡도 분석
먼저 시간 복잡도에 대해 이야기하겠습니다.
시간 복잡도에 영향을 미치는 것은 이 두 for
루프 입니다.
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
}
}
}
첫 번째 for 루프는 n
시간을 실행하고 n-1
그 안에 루프를 중첩하므로 n(n-1)
시간 복잡도는 O( n 2 n^{2}N2 )
공간복잡도에 대해 알아보자
공간복잡도는 생성된 변수가 너무 크기 때문에 temp
공간복잡도는 O(1)입니다.