Java 정렬과 순위 알고리즘

코딩Java
읽는데 4분 소요
처음 쓰여진 날: 2026-03-28
마지막 수정일: 2026-03-28
조회수: 0

요약

Java에서 출제된 정렬(버블 정렬)과 순위 알고리즘을 알아봅니다. swap 패턴, 이중 for문 구조를 이해하여 정보처리기사 실기 문제를 풀어봅니다.

정렬과 순위 핵심 정리

개념설명예시
swap두 변수의 값을 교환t=a; a=b; b=t;
버블 정렬인접 요소를 비교하여 교환{5,3,1}{1,3,5}
순위 알고리즘자신보다 큰 값의 개수 + 1 = 순위{79,34} → 순위 {1,2}

swap (값 교환)

정렬 알고리즘에서 swap은 두 값을 서로 바꾸는 동작입니다. 임시 변수 t를 사용하여 값이 사라지지 않도록 합니다.

java
코드 하이라이팅 중...

예를 들어 a[0]=5, a[1]=3을 교환하면:

단계a[0]a[1]t
시작53-
① t = a[0]535
② a[0] = a[1]335
③ a[1] = t355

버블 정렬 (Bubble Sort)

버블 정렬은 인접한 두 요소를 비교하여, 순서가 잘못되었으면 교환하는 정렬 알고리즘입니다. 이 과정을 배열 전체에 대해 반복하면 가장 큰 값이 뒤로 밀려나면서 정렬됩니다.

java
코드 하이라이팅 중...

동작 원리

배열 {5, 3, 1}을 오름차순 정렬하는 과정입니다.

1회전 (i=0): 인접 요소를 비교하며 가장 큰 값(5)이 맨 뒤로 이동

비교조건동작배열 상태
a[0]=5, a[1]=35 > 3 → 참swap{3, 5, 1}
a[1]=5, a[2]=15 > 1 → 참swap{3, 1, 5}

2회전 (i=1): 마지막 1개(5)는 이미 정렬되었으므로 제외

비교조건동작배열 상태
a[0]=3, a[1]=13 > 1 → 참swap{1, 3, 5}

정렬 완료: {1, 3, 5}

내부 반복 범위: len - i - 1

j < len - i - 1에서 -i는 매 회전마다 이미 정렬된 뒤쪽 요소를 제외하기 위한 것입니다. i회전이 끝나면 뒤에서 i개는 이미 올바른 위치에 있습니다.



순위 알고리즘

순위 알고리즘은 배열의 각 요소가 몇 번째로 큰지(또는 작은지) 구하는 알고리즘입니다. 이중 반복문으로 자신과 다른 모든 요소를 비교합니다.

java
코드 하이라이팅 중...

동작 원리

"나보다 큰 값의 개수 + 1 = 순위"라는 원리입니다. 가장 큰 값은 자신보다 큰 값이 0개이므로 순위 1, 두 번째로 큰 값은 1개이므로 순위 2가 됩니다.

요소나보다 큰 값개수순위 (1+개수)
arr[0]799912
arr[1]3479, 99, 5034
arr[2]1079, 34, 99, 5045
arr[3]99없음01
arr[4]5079, 9923

result = {2, 4, 5, 1, 3} → 출력: 24513


정보처리기사 실기 기출 문제