본문 바로가기

개발자 컨닝노트/알고리즘 정복하기2

[정렬] Merge Sort 개념 정리 및 관련 문제 풀기 이번 포스트에서는 Merge Sort에 대한 개념에 대해 알아보기 관련 문제를 풀어보겠습니다. 개념 정리 Merge Sort는 번역하면 병합 정렬이라고 합니다. Merge Sort는 대표적인 Divide & Conquer 알고리즘입니다. 즉 분할을 해서 작은 사이즈를 먼저 해결하고 나서 합치는 것을 의미합니다. 이 전략이 좋은 이유는 처음부터 많은 양의 비교를 하지 않고 작은 단위부터 정렬된 배열들을 만들어서 합칠때 두 정렬된 배열을 비교하면 되기 때문입니다. 정렬된 배열을 비교하는 것은 일반적인 정렬보다 간단합니다. 왜냐하면 각 배열이 이미 정렬되어 있기 때문에 가장 앞에 있는 것들만 비교하면 됩니다. 예를 들어서 배열 [1, 3, 5, 7] 과 [2, 4, 6, 8] 을 정렬한다고 가정하겠습니다. 두.. 2022. 10. 26.
[정렬] Insertion Sort(삽입 정렬) 기본 개념 및 관련 문제 풀기! 이번 포스트에서는 정렬 알고리즘 중에 하나인 Insertion Sort에 대해서 알아보겠습니다. 개념 소개 Insertion Sort는 번역하면 삽입 정렬이라고 합니다. 삽입 정렬은 배열을 처음부터 순회하면서 해당 원소가 들어가야할 자리를 찾아서 삽입시키는 방법을 의미합니다. 삽입 정렬에서 중요한 것은 바로 자신의 앞 배열이 모두 정렬되어 있다는 것입니다. 예를 들어서 현재 삽입해야할 원소가 3번째 원소라면, 반드시 1번과 2번 원소는 정렬이 되어 있어야합니다. 그래야만 3번째 원소가 어디에 들어가야하는지를 찾을 수 있습니다. 예시를 함께 보겠습니다. 배열 [5, 4, 2, 3, 1] 이 있다고 가정해보겠습니다. 첫번째 원소인 5는 앞에 원소가 없이 자기 자신뿐이므로 그 자체로 정렬이 되어있다고 볼 수 .. 2022. 10. 26.