300x250
인트로 합병 정렬 또는 병합 정렬은 $O(NlogN)$ 시간 복잡도를 갖는 정렬 알고리즘으로 분할 정복 패러다임에 기반한다. 추가로 삽입 정렬, 버블 정렬, 선택 정렬이 추가적인 자료구조 없이 정렬하는 Inplace 정렬이라면 병합 정렬은 정렬한 데이터를 추가적인 임시 공간에 저장한다. 병합 정렬(Merge Sort) : 개념 앞서 언급했듯 병합 정렬은 분할 정복 패러다임에 기반한 알고리즘으로 큰 문제를 아주 작은 문제로 나눈 뒤 작은 문제를 해결하며 최종적으로 큰 문제를 해결한다. 다음과 같은 데이터가 배열에 저장되어 있다. 분할 : 본 배열을 더 이상 쪼갤 수 없을 때까지 쪼개면 [3] [44] [38] [5] [47] [15] [36] [26] 다음과 같은 형태가 된다. 정복 : 두 집합을 하나로 ..
인트로 병합 정렬을 포스팅하기 앞서 병합 정렬의 핵심 로직인 두 배열을 정렬하며 합치는 과정을 기록하려 한다. 보다 쉬운 이해를 위해 두 배열을 정렬하며 합치는 문제를 소개하려 한다. ↓병합정렬 포스팅↓ [Algorithm] 병합 정렬(Merge Sort) 코드와 시간 복잡도 [Algorithm] 병합 정렬(Merge Sort) 코드와 시간 복잡도 인트로 합병 정렬 또는 병합 정렬은 $O(NlogN)$ 시간 복잡도를 갖는 정렬 알고리즘으로 분할 정복 패러다임에 기반한다. 추가로 삽입 정렬, 버블 정렬, 선택 정렬이 추가적인 자료구조 없이 정렬하 kangworld.tistory.com 두 배열 합치기 문제 오름차순으로 정렬이 된 두 배열이 주어지면 두 배열을 오름차순으로 합쳐 출력하는 프로그램을 작성하세요..
인트로 기초 정렬 알고리즘 마지막 파트인 삽입 정렬(Insertion Sort)을 알아보자. 재밌게도 삽입 정렬은 데이터의 배치에 따라 O(N) 시간 복잡도를 가진다. 개인적인 생각으로 버블 정렬의 한 단계 진화한 모습이 삽입 정렬이 아닐까 한다. 삽입 정렬과 관련된 문제는 해당 포스팅을 참고하세요 :) [Algorithm] level0 : LRU(Least Recently Used) [Algorithm] level0 : LRU(Least Recently Used) 인트로 LRU 페이지 교체 알고리즘을 간단하게 구현하는 문제이다. 문제에서도 설명하겠지만 LRU란 가장 오랜시간 사용되지 않은 페이지를 교체하는 운영체제의 페이지 교체정책중 하나이다. 문 kangworld.tistory.com 삽입 정렬(In..
인트로 기초 정렬 알고리즘인 버블 정렬(Bubble Sort)과 시간 복잡도를 알아보자 참고로 성능이 좋지 못해 버블 정렬이 사용될 일은 극히 드물다. 버블 정렬 활용 문제는 다음 포스팅을 참고하세요. [Algorithm] level0 : Special Sort(구글 인터뷰) [Algorithm] level0 : Special Sort(구글 인터뷰) 인트로 정렬을 알고리즘을 적용하는 문제이다. 어떤 정렬을 사용할진 문제를 읽어보고 고민하길 바란다. Special Sort(구글 인터뷰) 문제 N개의 정수가 입력되면 당신은 입력된 값을 정렬해야 한 kangworld.tistory.com 버블 정렬(Bubble Sort) : 개념 [ Cycle 1 ] 1. 배열의 "0"번 원소와 "1"번 원소를 비교해서 대소..
인트로 기초 정렬 알고리즘인 선택 정렬(Selection Sort)과 시간 복잡도를 알아보자 선택정렬 활용 문제는 다음 포스팅을 참고하세요 [Algorithm] level0 : 3등의 성적은? [Algorithm] level0 : 3등의 성적은? 인트로 정렬을 사용하는 기초적인 문제이다. 3등의 성적은? 문제 N명의 수학 성적이 주어지면 그중 3등을 한 수학 성적을 출력하는 프로그램을 작성하세요. 만약 학생의 점수가 100점이 3명, 99점 kangworld.tistory.com 선택정렬(Selection Sort) : 개념 1. 배열에서 최솟값을 찾는다. 2. 최솟값이 배열의 맨 앞 원소보다 작으면 자리를 교체한다. 3. 맨 앞의 원소를 제외한 체 1~2 과정을 반복한다. 선택정렬(Selection S..