
두 인접한 데이터의 크기를 비교해 정렬하는 방법이다. 간단하게 구현할 수 있지만, 시간 복잡도가 O(n²)으로 다른 정렬 알고리즘보다 속도가 느린 편이다.
버블 정렬 수행 방식
<aside> 💡 특정한 루프의 전체 영역에서 swap이 한 번도 발생하지 않았다면 그 영역 뒤에 있는 데이터가 모두 정렬되었다는 뜻이므로 프로세스를 종료해도 된다.
</aside>






public class 수_정렬하기1_2750 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int[] A = new int[N];
for (int i = 0; i < N; i++) {
A[i] = scan.nextInt();
}
// 버블 정렬 구현
for (int i = 0; i < N - 1; i++) {
// -i 는 상위 루프가 한 번 돌 때마다 정렬되기 때문에 범위를 줄이는 것.
for (int j = 0; j < N - 1 - i; j++) {
if(A[j] > A[j+1]) {
int temp = A[j];
A[j] = A[j+1];
A[j+1] = temp;
}
}
}
// 출력
for(int i=0; i<N; i++) {
System.out.println(A[i]);
}
}
}