선택 정렬은 가장 작은 것을 선택해서 맨 앞으로 옮기고 바꾸는 것을 의미한다.
굉장히 비효율적이고 빅오표기법으로 표기하면 O(N^2)이다.
* 빅오 표기법
- 특정한 알고리즘의 수행시간을 간단히 표기
문제
- 다음의 숫자들을 오름차순으로 정렬하는 프로그램을 작성하세요.
1 3 2 9 10 5 8 7 6 4
소스 코드
package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int arr[] = new int[10];
Scanner sc = new Scanner(System.in);
for(int k=0; k<10; k++) {
arr[k] = sc.nextInt();
}
int i, j, min, index, temp;
for(i=0; i<10; i++) {
min = 9999;
index = 0;
for(j=i; j<10; j++) {
if(min > arr[j]) {
min = arr[j];
index = j;
}
}
temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
for(i=0; i<10; i++) {
System.out.print(arr[i] + " ");
}
}
}
출력 결과
'5. 알고리즘 > 5_2 실전' 카테고리의 다른 글
[알고리즘] JAVA 힙 정렬 (Heap Sort) 알고리즘 (0) | 2020.02.16 |
---|---|
[알고리즘] JAVA 병합 정렬 (Merge Sort) 알고리즘 (0) | 2020.02.15 |
[알고리즘] JAVA 퀵 정렬 (Quick Sort) 알고리즘 (0) | 2020.02.15 |
[알고리즘] JAVA 삽입 정렬 (Insert Sort) 알고리즘 (0) | 2020.02.13 |
[알고리즘] 버블 정렬 (Bubble Sort) 알고리즘 자바(Java) (0) | 2020.02.13 |