23-1아래 Java 프로그램은 배열을 내림차순으로 정렬해 8 6 3 … | 2023년 정보처리기사실기 1회차 기출문제 상세 페이지
3
23-1
아래 Java 프로그램은 배열을 내림차순으로 정렬해 8 6 3 2 1을 출력한다. 빈칸 ①, ②에 들어갈 알맞은 식별자를 적으시오. (단, 코드에 선언된 변수명으로 적는다.)
public class Main {
static void exchange(int[] arr, int p, int q) {
int tmp = arr[q];
arr[q] = arr[p];
arr[__①__] = tmp;
}
static void sortDesc(int[] arr, int n) {
for (int r = 0; r < n - 1; r++) {
for (int c = 0; c < n - 1 - r; c++) {
if (arr[c] < arr[c + 1]) {
exchange(arr, c, c + 1);
}
}
}
}
public static void main(String[] args) {
int[] nums = {3, 8, 2, 6, 1};
int size = 5;
sortDesc(nums, __②__);
for (int x : nums) {
System.out.print(x + " ");
}
}
}해설
① p
② size
[해설]
exchange는 tmp에 arr[q]를 보관하고, arr[q]에 arr[p]를 옮긴 뒤, 보관해 둔 값을 arr[p]에 넣어야 두 값이 맞바뀐다.
sortDesc의 두 번째 매개변수 n은 정렬할 원소 개수다. main에서 원소 개수를 담아 둔 변수는 size(5)이다.
sortDesc는 인접한 두 값을 비교해 앞이 작으면 바꾸는 버블 정렬이다. 한 바퀴마다 가장 작은 값이 뒤로 밀려 3 8 2 6 1이 8 6 3 2 1이 된다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.