import java.util.Scanner;
//단순 선택정렬
public class SelectionSort {
//배열 요소 a[idx1]과 a[idx2]의 값을 바꾸는 메서드
static void swap(int a[], int idx1, int idx2) {
int t = a[idx1];
a[idx1] = a[idx2];
a[idx2] = t;
}
static void selectionSort(int a[], int n) {
for (int i=0;i<n-1;i++) {
int min = i; //아직 정렬되지 않는 가장 작은 요소의 index를 기록
for (int j=i+1;j<n; j++) {
if (a[j] < a [min]) {
min = j;
}
}
swap(a, i, min); // 아직 정렬되지 않은 부분의 첫 요소와 가장 작은 요소를 교환
}
}
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("단순 선택 정렬");
System.out.println("요소의 개수:");
int nx = stdIn.nextInt();
int x[] = new int[nx];
for(int i=0; i<x.length; i++) {
System.out.println("x["+i+"]:");
x[i] = stdIn.nextInt();
}
selectionSort(x, nx);
System.out.println("오름차순으로 정렬했습니다.");
for(int i=0;i<nx;i++) {
System.out.println("x["+i+"]: "+x[i]);
}
}
}