프로그래밍/알고리즘
알고리즘 - 선택 정렬(JAVA)
맹이맹이
2021. 3. 12. 13:19
반응형
선택 정렬
- 제자리 정렬 알고리즘의 하나로서, 리스트 중 최솟값을 찾아서 맨 앞에 위치한 값과 교체한다.
- 맨 처음 위치를 빼고 나머지 리스트들도 위와 같은 방법으로 교체를 하는 알고리즘이다.
시간 복잡도
- 시간 복잡도는 O(n^2)
장단점
장점
데이터의 이동이 미리 정해진다!
단점
안정성을 만족하지 않는다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Test{
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] arr = new int[5];
for(int i=0; i<arr.length; i++){
arr[i] = Integer.parseInt(br.readLine());
}
Ssort(arr);
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void Ssort(int[] arr) {
int indexMin, temp;
for (int i = 0; i < arr.length - 1; i++) {
indexMin = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[indexMin]) {
indexMin = j;
}
}
temp = arr[indexMin];
arr[indexMin] = arr[i];
arr[i] = temp;
}
System.out.println(Arrays.toString(arr));
}
}
알고리즘 추천도서
반응형