728x90
반응형
문제
다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.
#include <stdio.h>
void main(){
int i,j;
int temp;
int a[5] = {75,95,85,100,50};
for(i=0; i<4; i++){
for(j=0; j<4-i; j++){
if(a[j] > a[j+1]){
temp=a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(i=0; i<5; i++){
printf("%d", a[i]);
}
}
정답
50 75 85 95 100
반응형
코드 설명: 버블 정렬 구현
C 언어로 작성된 버블 정렬(Bubble Sort) 알고리즘을 구현한 코드입니다. 이 코드는 정수 배열을 오름차순으로 정렬합니다.
#include <stdio.h> // 표준 입출력 라이브러리를 포함합니다.
void main() {
int i, j; // 루프 변수 i와 j를 선언합니다.
int temp; // 배열 요소를 교환하기 위한 임시 변수를 선언합니다.
int a[5] = {75, 95, 85, 100, 50}; // 정렬할 정수 배열을 초기화합니다.
// 버블 정렬 알고리즘
for (i = 0; i < 4; i++) { // 배열의 크기-1만큼 반복합니다.
for (j = 0; j < 4 - i; j++) { // 정렬되지 않은 부분을 대상으로 반복합니다.
if (a[j] > a[j + 1]) { // 인접한 두 요소를 비교합니다.
temp = a[j]; // 요소 교환을 위해 임시 변수에 저장합니다.
a[j] = a[j + 1]; // 더 큰 요소를 오른쪽으로 이동합니다.
a[j + 1] = temp; // 임시 변수에 저장된 요소를 왼쪽으로 이동합니다.
}
}
}
// 정렬된 배열을 출력합니다.
for (i = 0; i < 5; i++) {
printf("%d ", a[i]); // 배열의 각 요소를 출력합니다.
}
}
코드 설명: 상세 코드 설명
1. 변수 선언
int i, j;
int temp;
int a[5] = {75, 95, 85, 100, 50};
i와 j는 반복문에서 사용할 루프 변수입니다. temp는 배열 요소를 교환할 때 사용할 임시 변수입니다. a는 정렬할 정수 배열입니다.
2. 버블 정렬 알고리즘
for (i = 0; i < 4; i++) {
for (j = 0; j < 4 - i; j++) {
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
- 버블 정렬(Bubble Sort)은 간단한 정렬 알고리즘 중 하나로, 배열의 요소들을 비교하고 교환하여 정렬하는 방법입니다. 이 알고리즘은 배열을 여러 번 순회하면서 인접한 두 요소를 비교하고, 필요에 따라 교환하여 배열을 정렬합니다. 버블 정렬은 정렬 과정에서 큰 값이 배열의 끝으로 "버블"처럼 떠오르는 모습에서 이름이 유래되었습니다.
- i: 외부 루프의 인덱스입니다. 각 패스에서 배열의 크기-1만큼 반복합니다.
- j: 내부 루프의 인덱스입니다. 현재 비교하는 두 요소의 인덱스를 나타냅니다.
- 비교: 현재 j와 j+1 위치의 두 요소를 비교합니다.
- 교환: 비교 결과, 두 요소의 순서가 바뀌어야 할 경우 수행됩니다.
- 배열 상태: 각 단계 후의 배열 상태를 보여줍니다.
728x90
2. 정렬된 배열 출력
for (i = 0; i < 5; i++) {
printf("%d ", a[i]);
}
정렬된 배열의 각 요소를 공백으로 구분하여 출력합니다.
배열 a의 최종 상태는 [50, 75, 85, 95, 100]이므로, 이 코드 라인은 다음과 같은 출력을 생성합니다: 50 75 85 95 100
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90
반응형
'코딩일기 > 자격증' 카테고리의 다른 글
[정보처리기사] [ Java ] switch 문에서 break가 없을 때 | 2020년 정보처리기사 기출문제 (0) | 2024.09.23 |
---|---|
[정보처리기사] [ Java ] for 루프를 사용하여 배열 출력 | 2020년 정보처리기사 기출문제 (0) | 2024.09.06 |
[정보처리기사] 프로세스 스케줄링 | 선점 스케줄링 기법, 비선점 스케줄링 기법 | 2020년 정보처리기사 실기 기출문제 (0) | 2024.09.06 |
[정보처리기사] 튜플 수 구하기 | SQL : SELECT, DISTINCT, COUNT | 2020년 정보처리기사 실기 기출문제 (0) | 2024.09.06 |
[정보처리기사] 인터페이스 구현 : JSON, XML, AJAX, REST | 정보처리기사 실기 기출 모음 (0) | 2024.09.05 |