이번 문제는 N의 범위가 1000까지이므로 버블정렬을 사용해도 된다.
시간 복잡도가 O(n2)이어도 1,000,000이기에 상관이 없다.
버블정렬은 인접한 값을 비교한 후 정렬을 하는 방식으로 교환이 매우 자주 일어난다.
따라서 N의 범위가 크면 사용하기 어려운 알고리즘이다.
아래 코드를 보자.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
int[] numArr = new int[N];
for(int i = 0; i < N; i++) {
numArr[i] = Integer.parseInt(br.readLine());
}
for(int i = 0; i < N; i++) {
for(int j = 0; j < N - 1; j++) {
int temp = 0;
if(numArr[j] > numArr[j + 1]) {
temp = numArr[j];
numArr[j] = numArr[j + 1];
numArr[j + 1] = temp;
}
}
}
for(int i = 0; i < N; i++) {
sb.append(numArr[i] + "\n");
}
System.out.println(sb);
}
}