정렬: 어떤 데이터들이 주어졌을 때, 이를 정해진 순서대로 나열하는 것정렬은 프로그램 작성시 빈번하게 필요로 함다양한 알고리즘이 고안되었으며, 알고리즘 학습의 필수다양한 정렬 알고리즘 이해를 통해, 동일한 문제에 대해 다양한 알고리즘이 고안될 수 있음을 이해하고, 각
인접한 두 데이터를 비교하여, 앞에 있는 데이터가 뒤에 있는 데이터보다 크면 자리를 바꾸는 정렬 알고리즘index 0 부터 n-1까지 n개의 데이터를 비교하는 것을 한 바퀴라고 한다면 완전한 최종 sorting까지 돌아야하는 바퀴 수 : (데이터의 길이 - 1)한 바퀴
삽입 정렬은 index 2번째 데이터부터 시작해당 인덱스가 i라면, 바로 앞 (i-1)번부터 0번까지의 데이터들과 차례로 비교하여, 자신보다 큰 값이라면 swap자신보다 작은 값이라면, 그 index보다 작은 위치의 데이터들은 sorting이 완료되어 있다는 가정을 하
n개의 원소를 가진 배열을 정렬할 때, bubble이나 insertion처럼 비교할 때 마다 swap하는것이 아니라, 여러 데이터들을 탐색하면서 최솟값을 찾아 최종적으로 최솟값의 위치와 swap주어진 데이터 중, 최소값을 찾음해당 최소값을 데이터 맨 앞에 위치한 값과

Merge Sort

시간 복잡도: 얼마나 빠르게 실행되는지공간 복잡도: 얼마나 많은 저장 공간이 필요한지실행 시간이 짧고, 저장 공간도 적게 쓰는 알고리즘이 좋은 알고리즘통상 둘 다를 만족시키기는 어려움시간과 공간은 반비례적 경향이 있음최근 대용량 시스템이 보편화되면서, 공간 복잡도보다는

pick a Pivot: usually last element.Partitioning: all numbers less than pivot will be moved to the left of the pivot, all numbers greater than pivot wi
Heap?
DFS vs. BFS 깊이 우선 탐색: 한 드라마를 몰아서 한번에 쫘악 보는것 주로 재귀 함수를 사용하는 것이 일방적인 방식 시간복잡도가 높을 수 있다는 단점 너비 우선 탐색: 여러 드라마를 각각 한편씩 보는 것 순서를 연결하기 때문에 주로 Queue, LinkedList 사용 시간복잡도가 낮다는 장점 문제 유형 (그래프 탐색 알고리즘) ...