본문 바로가기

Algorithm7

[Algorithm] 선택 정렬(Selection Sort) 정의 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택 하는 알고리즘 ex) 오름차순 정렬일경우, 가장 작은 것을 선택 하여 제일 앞으로 보내기 과정(오름차순) 1. 주어진 배열중에서 최솟값을 찾는다 2. 찾은 최솟값을 정렬되지 않은 배열 중 맨 앞의 값과 교체(Swap)한다 3. 위 과정을 반복한다 Python 코드(오름차순) import math def selection_sort(array): n = len(array) idx = 0 for i in range(n-1): min = math.inf for j in range(i, n): if array[j] < min: min = array[j] idx = j temp = array[i] array[i] = array[idx.. 2020. 12. 23.
[Algorithm] 시간복잡도와 공간복잡도 정의 시간복잡도 : 알고리즘의 수행시간 분석 결과 - 얼마나 빠르게 실행되는가 공간복잡도 : 알고리즘의 메모리 사용량에 대한 분석 결과 - 얼마나 많은 자원이 요구되는가 효율적인 알고리즘 : 알고리즘이 수행을 시작하여 결과가 도출될 때까지 걸리는 시간이 짧고 연산하는 컴퓨터 내의 메모리와 같은 자원을 덜 사용하는 알고리즘 시간복잡도 알고리즘을 수행하는데 연산(산술, 대입, 비교, 이동) 들이 몇 번 이루어지는지를 숫자로 표기함 동일한 알고리즘도 입력되는 데이터에 따라 실행시간이 다르며 최선, 평균, 최악의 경우로 나누어질 수 있다 ex) 여러 정렬들의 시간복잡도 빅오표기법 시간복잡도 함수에서 상대적으로 불필요한 연산을 제거하여 알고리즘의 분석을 조금 더 간편하게 할 목적으로 시간복잡도를 표기하는 방법 e.. 2020. 12. 23.
[Algorithm] 알고리즘이란? 알고리즘의 조건? 정의 문제를 해결하는 절차(과정) 알고리즘의 조건 입력 : 0개 이상의 입력이 있어야 한다 출력 : 1개 이상의 출력이 있어야 한다 유한성 : 유한한 단계를 거친 후 반드시 종료되어야 한다 명확성 : 각 명령어의 의미는 모호하지 않고 명확해야 한다 효과성 : 각 명령어들은 실행 가능한 연산이어야 한다 ex)0으로 나누는 연산은 X 2020. 12. 23.