[2750번] 수 정렬하기 ( 버블 정렬 )

Loopy·2023년 11월 22일
0

코테 문제들

목록 보기
13/113


✅ 버블 정렬

입력 n 의 최대가 1,000 이므로 n제곱 알고리즘 ( 버블 정렬 ) 으로 풀어도 되는 문제인 걸 인지하자.
( 1,000,000 < 1 억 )

	for (int i = 0; i < input - 1; i++) {
			for (int j = 0; j < input - 1 - i; j++) {
				if (arr[j] > arr[j + 1]) {
					int temp = arr[j];
					arr[j] = arr[i + 1];
					arr[j + 1] = temp;
				}
			}
		}
👾 반복문 구간 설정에 주의하자!!
i는 0 ... input-1 (마지막에 숫자 두 개가 한 번에 정렬 됨)
j는 0 ... input-1-i 

직접 손으로 그려보는 게 가장 좋으므로 한 번 그려보자.


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int input = Integer.parseInt(br.readLine());
		int arr[] = new int[input];
		for (int i = 0; i < input; i++) {
			arr[i] = Integer.parseInt(br.readLine());
		}

		for (int i = 0; i < input - 1; i++) {
			for (int j = 0; j < input - 1 - i; j++) {
				if (arr[j] > arr[j + 1]) {
					int temp = arr[j];
					arr[j] = arr[i + 1];
					arr[j + 1] = temp;
				}
			}
		}

		for (int i = 0; i < input; i++) {
			System.out.println(arr[i]);
		}

	}
}
profile
잔망루피의 알쓸코딩

0개의 댓글