알고리즘 (2): 거품 정렬, 삽입 정렬, 선택 정렬, 합병 정렬, 빠른 정렬


정렬 알고리즘

  • 정렬 알고리즘은 원소들을 일정한 순서대로 열거하는 알고리즘이다.

  • n개의 입력이 주어졌을 때 이를 효율적으로 정렬하는 것은 매우 중요하다.

  • 정렬 알고리즘은 크게 수행시간(time complexity), 추가 공간의 필요성(in-place), 중복된 값에 대한 처리유무(stability)로 비교할 수 있다.

이 글에서의 정렬 알고리즘은 주어진 입력이 int형의 배열이라고 가정하고 설명함.

거품 정렬(Bubble Sort)

  • 인접한 두 원소의 관계를 검사하여 정렬하는 알고리즘.

  • 거품 정렬은 코드가 단순하며 이미 정렬된 입력에 대해 가장 빠르게 수행된다.

자세히 보기

알고리즘 (1): 알고리즘 분석과 복잡도


알고리즘

특정 문제를 해결하기 위해 기술하는 명령문

알고리즘의 요건

1. 완전성과 명확성

  • 수행결과의 순서가 완전하고 명확하게 명세되어야 한다.
  • 알고리즘이 지시하는대로 실행하면 의도한 결과가 얻어져야 한다.

2. 입력과 출력

  • 입력: 알고리즘이 처리해야 할 대상, 제공되는 데이터
  • 출력: 입력 데이터를 처리하여 얻은 결과

3. 유한성

  • 단계는 유한해야하며 마지막 단계는 종료여야 한다.
자세히 보기