알고리즘 성능 표기법 Big O(빅-오) 표기법 : O(N) 가장 많이, 일반적으로 사용함 알고리즘 최악의 실행 시간을 표기 즉, 아무리 최악의 상황이더라도 이정도의 성능은 보장한다는 의미
Hash Table : 키(Key)에 데이터(Value)를 저장하는 데이터 구조이다. key를 통해 바로 데이터를 받아올 수 있어 속도가 매우 빨라진다. (배열 같은 다른 데이터 구조보다 훨씬 검색 속도가 빠름)
2개의 인접한 데이터를 비교해서 앞에 있는 데이터가 뒤에 있는 데이터보다 크면 자리를 바꾸는 정렬 알고리즘이다.N개의 원소가 있는 경우 정렬은 N-1턴 일어난다.정렬이 1턴 일어날 때마다 가장 큰 숫자가 뒤에서부터 1개씩 결정된다.따라서 정렬이 1턴 일어날 때 해당 턴
삽입정렬 - 삽입 정렬은 자신보다 앞의 원소가 큰지 작은지 비교를 해서 알맞은 위치를 찾아서 '삽입' 하는 정렬이다. - 이때 자신보다 앞의 원소를 비교하므로 2번째 index부터 시작한다.
해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 그 위치에 어떤 원소를 넣을지 선택하는 알고리즘이다. 다음과 같은 순서를 반복하며 정렬하는 알고리즘이다.주어진 데이터 중, 최소값을 찾음해당 최소값을 데이터 맨 앞에 위치한 값과 교체함맨 앞의 위치를 뺀 나머지 데이터
알고리즘 계산 복잡도는 다음 두 가지 척도로 표현될 수 있음시간 복잡도 : 얼마나 빠르게 실행되는지공간 복잡도 : 얼마나 많은 저장 공간이 필요한지✨ 좋은 알고리즘은 실행 시간도 짧고, 저장 공간도 적게 쓰는 알고리즘 ✨그러나 일반적으로는 둘 다 만족 시키기는 어려움시
재귀 용법 : 함수 안에서 동일한 함수를 호출하는 형태엄밀히 따지자면 재귀 용법 자체가 알고리즘은 아니지만, 이후 고급 알고리즘을 다룰 때 사용되므로 익혀놓도록 하자~$n!:1×2×...×n$ : 재귀 호출을 이용하여 팩토리얼 함수 구현하기재귀 호출은 스택(stack:
퀵 정렬이란? 기준점(pivot 이라고 부름)을 정해서, 기준점보다 작은 데이터는 왼쪽(left), 큰 데이터는 오른쪽(right) 으로 모으는 함수를 작성함 각 왼쪽(left), 오른쪽(right)은 재귀용법을 사용해서 다시 동일 함수를 호출하여 위 작업을 반복함 함
📌 병합 정렬이란? 병합 정렬은 재귀용법을 활용한 정렬 알고리즘으로, 아래 방법을 이용하여 구현한다. 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다. 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬한다. 두 부분 리스트를 다시 하나의
✍🏻플로이드 와샬(Floyd Warshall) 알고리즘을 이해해보자 :D