정렬(2)
-
[알고리즘] 퀵 정렬
정렬 알고리즘(Sorting Algorithm)이란, 대소 관계를 비교할 수 있는 항목에 따라 일정한 순서대로 순서가 있는 데이터의 원소들의 위치를 변경하는 작업입니다[1]. 이 중 퀵 정렬(Quick sort)에 대해 알아보도록 하겠습니다. 1. 알고리즘 2. 구현 3. 최적화 4. 시간 복잡도 * 특별한 언급이 없는 이상 오름차순 정렬을 기준으로 설명합니다 :) * 본 글에서는 Python을 중심으로 설명합니다. 1. 알고리즘 퀵 정렬(Quick sort)은 토니 호어가 개발한 정렬 알고리즘으로, 분할 정복 알고리즘(Divide and conquer algorithm)의 대표적인 예입니다[1]. 여기서 분할 정복 알고리즘이란, 그대로 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 ..
2020.05.02 -
[알고리즘] 버블 정렬
정렬 알고리즘(Sorting Algorithm)이란, 대소 관계를 비교할 수 있는 항목에 따라 일정한 순서대로 순서가 있는 데이터의 원소들의 위치를 변경하는 작업입니다[1]. 이 중 버블 정렬(Bubble sort)에 대해 알아보도록 하겠습니다. 1. 알고리즘 2. 구현 3. 최적화 4. 시간 복잡도 * 특별한 언급이 없는 이상 오름차순 정렬을 기준으로 설명합니다 :) * 본 글에서는 Python을 중심으로 설명합니다. 1. 알고리즘 버블 정렬(Bubble sort)은 인접한 두 원소를 검사하여 정렬하는 방법입니다[2]. 이때, 정렬하고자하는 데이터는 '순서가 있는 데이터'이어야 합니다. 만약 순서가 없다면 대소 관계를 비교할 수 없어 정렬 알고리즘을 적용할 수 없습니다. [영상 1] 버블..
2020.05.02