알고리즘의 개념과 대표 설계 기법

알고리즘이란 무엇일까요. 알고리즘의 개념과 설계 기법, 버블정렬의 원리와 수행 시간, 장단점과 알고리즘을 배우는 이유를 정리한 컴퓨터 보고서예요.

먼저 유한성을 가진 단계적 절차로서 알고리즘의 뜻과 구조를 살펴봐요.

다음으로 자판기 예처럼 일상의 절차를 알고리즘으로 보는 관점을 풀어요.

이어서 인접한 원소를 비교하는 버블정렬의 동작과 예제를 설명해요.

마지막은 비교 횟수와 수행 시간, 장단점이에요. 개념과 사례가 어떤 순서로 이어지는지 먼저 훑어보면 뒤의 설명이 훨씬 쉬워져요. 단계 이름만 외우기보다 각 항목이 왜 필요한지 함께 살펴보세요.

요약과 비교표, 용어 카드, 질문으로 핵심을 점검해 보세요. 처음 읽는 분도 흐름을 따라가기 쉽도록 핵심만 추려 정리했어요. 필요한 부분만 골라 읽어도 이해에 문제가 없어요. 문단마다 핵심 개념이 어떻게 이어지는지 차례대로 따라가 보면 전체 구성이 한눈에 들어와요. 복습할 때도 도움이 돼요.

버블정렬의 동작 원리와 예제

일고리즘은 유한성을 가지며, 언젠가는 끝이 나야 한다는 속성을 가지고 있다.

알고리즘은 연산과 데이터 진행 혹은 자동화된 추론을 수행한다.

이러한 알고리즘은 배열과 연결리스트, 큐와 스텍으로 이루어진 선형구조와 트리 및 그래프로 이루어진 비선형 구조가 있다.

알고리즘을 설계할 때는 주어진 문제와 조건 등이 상당히 다양하기 때문에 알고리즘의 일반적인 설계 방법론이라는 것은 존재하지 않다.

그렇지만 많은 부류의 문제에 적용시킬 수 있는 대표적인 설계 기법으로는 분할정복 방법과 욕심쟁이 방법, 동적 프로그래밍 방법 등이 있다.

인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환한다.

선택 정렬과 기본 개념이 유사하다는 특징이 있다.

버블 정렬을 하는 방식은 첫 번째 자료와 두 번째 자료를, 다시 두 번째 자료와 세 번째 자료를, 그리고 세 번째 자료와 네 번째를, … 이와 같은 방식으로 (마지막-1)번째 자료와 마지막 자료를 비교하면서 교환하는 방법으로 자료를 정렬한다.

1회전을 수행하고 나서는 가장 큰 자료가 맨 뒷쪽으로 이동하기 때문에 2회전에서는 맨 끝에 위치한 자료는 정렬에서 제외되며, 2회전을 수행하고 나서 끝에서 두 번째 자료까지는 정렬에서 빠지게 된다.

이렇게 정렬을 1회전 수행할 경우마다 정렬에서 제외되는 데이터가 하나씩 늘어나는 것이다.

2. 버블정렬 알고리즘 예제 버블 정렬은 O(n^2)이기 때문에 성능이 좋지 않다.

거기에 성능이 안 좋은 정렬 중에서도 가장 안 좋은 편에 속하는 정렬이라, 주로 알고리즘 교육용을 제외하고는 사용되지 않는다.

알고리즘이란 어떠한 문제를 풀어가기 위한 여러 동작들의 모임을 말한다.

서로 인접한 두 원소를 검사하여 정렬하는 알고리즘이다.

처음 두 수를 비교해서 순서대로 숫자를 서로 바꿔준다.

5와 7은 이미 정렬되어 있으니까 그대로 놔둔다.

끝까지 정렬을 했으면 다시 처음부터 비교한다.

수학과 컴퓨터 및 과학 분야에서 알고리즘이란 작동이 이루어지도록 하는 내재하는 단계적 집합이기도 하다.

5,6은 넘어가고 6,3 순서를 바꿔준다.

7과 4는 서로 바꿔준다.

비교 횟수와 수행 시간 그리고 장단점

알고리즘과 버블정렬 정리

  • 알고리즘은 문제를 풀기 위한 여러 동작의 모임이며 유한성을 가져 언젠가는 끝나야 한다.
  • 버블정렬은 인접한 두 원소를 비교해 순서가 맞지 않으면 교환하며 한 회전마다 가장 큰 값이 뒤로 이동한다.
  • 비교 횟수는 N(N-1)/2이고 수행 시간은 O(N^2)이라 성능이 낮아 주로 교육용으로 쓰인다.

알고리즘의 개념과 설계 기법

  • 알고리즘은 문제를 풀기 위한 여러 동작의 모임이며 유한성을 가져 언젠가는 끝나야 한다는 속성이 있다.
  • 수학과 컴퓨터와 과학 분야에서 작동이 이루어지도록 하는 단계적 집합이며 연산과 데이터 처리와 자동화된 추론을 수행한다.
  • 자료 구조로 보면 배열과 연결리스트와 큐와 스택으로 이루어진 선형구조와 트리와 그래프로 이루어진 비선형 구조가 있다.
  • 문제와 조건이 다양해 일반적인 설계 방법론은 없지만 분할정복과 욕심쟁이 방법과 동적 프로그래밍이 대표 기법이다.
  • 일상의 예로 자판기에서 음료를 뽑는 과정, 곧 앞으로 가서 돈을 넣고 버튼을 선택하고 음료와 잔돈을 받는 순서도 알고리즘이다.
  • 알고리즘은 어떤 일을 해결하려 할 때의 절차 과정이라고 보면 쉽다.
  • 알고리즘을 얼마나 많이 아는가보다 문제에 접근해 해결하는 과정, 곧 문제해결능력과 개발 요령이 더 중요하다고 강조한다.
  • 짧고 쉽게 설명하면서도 구현이 까다로운 문제가 많아 알고리즘이 면접용 코딩 문제로 많이 쓰인다고 설명한다.

버블정렬의 원리와 분석

  • 버블정렬은 서로 인접한 두 원소를 검사해 순서가 맞지 않으면 교환하는 알고리즘으로 선택정렬과 개념이 비슷하다.
  • 첫째와 둘째 자료를, 다음에는 둘째와 셋째 자료를 비교하는 식으로 끝까지 가면 1회전이 끝나고 가장 큰 자료가 맨 뒤로 간다.
  • 회전을 거듭할 때마다 정렬에서 제외되는 데이터가 하나씩 늘어난다.
  • 여덟 개 숫자 예제에서는 5와 1을 바꾸고 7과 4를 바꾸는 식으로 처음부터 반복해 마지막에 1에서 8까지 정렬된다.
  • 비교 횟수는 N(N-1)/2번이고 평균 교환 횟수는 N(N-1)/4번이며 수행 시간은 O(N^2)이다.
  • 바깥 반복문이 약 N단계이고 안쪽 반복문도 약 N단계라 곱하면 N 제곱 시간이 걸린다.
  • 장점은 알고리즘이 간단하고 플래그를 쓰면 효율적으로 수행할 수 있다는 점이다.
  • 단점은 이미 정렬된 자료도 최소 1회전은 돌아야 하고 이미 비교한 원소를 또 비교해 비효율적이라 주로 교육용으로 쓰인다는 점이다.

버블정렬 분석

항목내용
비교 횟수총합 N(N-1)/2
교환 횟수평균 N(N-1)/4
수행 시간O(N^2), 성능이 낮은 정렬에 속함
장점알고리즘이 간단하고 플래그를 쓰면 효율 개선 가능
단점정렬된 자료도 최소 1회전 필요, 멀리 떨어진 원소가 많을수록 비효율

핵심 개념

  • 알고리즘 — 문제를 풀기 위한 여러 동작의 모임으로 유한성을 가지며 언젠가는 끝나는 절차이다.
  • 버블정렬 — 인접한 두 원소를 비교해 순서가 맞지 않으면 교환하며 정렬하는 알고리즘이다.
  • 시간복잡도 — 입력 크기에 따라 수행 시간이 늘어나는 정도로 버블정렬은 O(N^2)으로 표기한다.
  • 선형구조 — 배열과 연결리스트와 큐와 스택으로 이루어진 자료 구조를 가리킨다.

자주 묻는 질문

  • Q. 버블정렬은 어떻게 동작하나?
    A. 첫째와 둘째, 둘째와 셋째 자료를 차례로 비교해 순서가 맞지 않으면 바꾸며 한 회전이 끝날 때마다 가장 큰 자료가 맨 뒤로 이동한다.
  • Q. 버블정렬은 왜 비효율적이라고 하나?
    A. 비교와 교환 횟수가 많아 수행 시간이 O(N^2)이고 이미 정렬된 자료도 최소 한 번은 전체를 돌아야 하기 때문이다.
  • Q. 알고리즘을 왜 배워야 하나?
    A. 일상과 개발의 문제를 해결하는 절차를 논리적으로 기술하는 능력을 키우고 문제해결능력과 개발 요령을 기르는 바탕이 되기 때문이다.

정리

알고리즘은 문제 해결 절차를 논리적으로 나타낸 것이며 버블정렬은 단순하지만 비효율적이어서 교육용으로 이해하기에 적합하다고 정리한다.

이 자료 전체가 필요하신가요?총

환불규정

디지털 파일은 결제 후 즉시 제공되므로 환불이 제한됩니다.
◆환불 불가
- 단순 변심 / 일부 사용 후 환불 요청 / 구매 후 7일 경과
◆ 예외
- 파일 오류 / 다운로드 및 작동 불가 /
◆ 환불요청방식 : 상단의 고객센터 1:1 문의요청