정렬 알고리즘
·
Algorithm
1. 시간 복잡도먼저, 정렬의 성능과 관련된 시간 복잡도에 대해 알아보겠습니다.1-1. 시간 복잡도시간 복잡도란, 코드의 입력값과 연산 수행 시간의 상관관계를 나타내는 척도입니다.시간 복잡도의 점근 표기법으로는 3가지가 있습니다.최상의 경우 : 오메가 표기법 (Big-Ω Notation)평균의 경우 : 세타 표기법 (Big-θ Notation)최악의 경우 : 빅오 표기법 (Big-O Notation)이 중에서 알고리즘의 시간 복잡도를 측정할 때, 주로 빅오(Big-O) 표기법을 사용합니다.이유는 알고리즘 효율성을 상한선 기준으로 표기하기 때문이며, 입력값의 크기가 증가할 때 표기법을 보고 어떻게 증가하는지 파악할 수 있습니다. 1-2. Big-O 표기법  ① O(1) - 상수 시간 복잡도    · 입력 ..
동적 계획법(DP) [Python]
·
Algorithm
동적 계획법 알고리즘에 들어가기 앞서 Python이라는 언어는 동적인 언어라는 것을 인지하고 있으면 편합니다. Python은 C, C++처럼 변수의 자료형을 지정하지 않고 단순히 선언하는 것만으로도 값을 지정할 수 있으며, 변수의 자료형은 코드가 실행되는 시점에서 결정됩니다. 프로그래밍에서 정적(Static)과 동적(Dynamic) 정적과 동적의 차이점은 쉽게 말해서 정적(Static) - 한 번 정해놓으면 쉽게 변하지 않는 성질 동적(Dynamic) - 상황에 따라서 쉽게 변하는 성질 이라고 할 수 있습니다. x = 10 print(type(x)) x = '10' print(type(x)) >>> >>> 파이썬은 위와 같이 단순히 값을 다르게 선언하는 것 만으로도 동적인 모습을 보여줍니다. 동적 계획법..
HeoN97
'Algorithm' 카테고리의 글 목록