소소한 IT이야기/정보보안기사 실기

정보처리기사 프로그래밍 언어 활용 (feat.버블 정렬, 기출문제)

Klaus 2022. 10. 1. 10:58

정보처리기사 실기 내용 중 정렬 알고리즘은 단골 손님 입니다.

간단한 개념 및 출제되었던 문제를 분석해봅시다.

 

1.버블정렬(Bubble sort)

서로 인접한 데이터를 비교하여 가장 큰데이터를 뒤로 보내며 정렬하는 방식

 

순서

1). 배열에서 2개의 아이템을 선택하고 비교

[Algorithm] 버블 정렬 vs 선택 정렬 vs 삽입 정렬 차이 제대로 알고가자. (velog.io)

2).왼쪽이 오른쪽보다 크면 교환

[Algorithm] 버블 정렬 vs 선택 정렬 vs 삽입 정렬 차이 제대로 알고가자. (velog.io)

3). 오른쪽으로 이동 후 해당 프로세스 반복

[Algorithm] 버블 정렬 vs 선택 정렬 vs 삽입 정렬 차이 제대로 알고가자. (velog.io)

이렇게 왼쪽과 오른쪽을 비교를 끝까지 하면 첫 번째 사이클이 끝나게 됩니다.

버블정렬은 배열의 N-1번 비교 하고 반복하여 최종 산출물을 얻어 내는 방식입니다.

버블정렬의 시간복잡도는 O(n²) 입니다.

시험 외에 자세하게 알고 싶은 분은

[Algorithm] 버블 정렬 vs 선택 정렬 vs 삽입 정렬 차이 제대로 알고가자. (velog.io) 참고하시기 바랍니다.

 

4) 정보처리기사 실기 기출문제 (2020 1회)

더보기
#include < stdio.h>
Void main() {
    int i, j
    int temp;
int a[5] = { 60, 40, 20, 10, 70};

for (i=0, i<4; i++){
    for (j=0, j<4-I; j++){
        temp = a[j]
        a[j] = a[j+1];
        a[j+1] = temp;
        }
    }
}

for(i=0; i<5; i++){
    print(“%d”, a[i]);
    }
}