일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- scipy
- 자연어처리
- 주피터 노트북
- 데이터분석
- 병합 정렬
- 희소행렬
- 문서-단어 행렬
- 삽입정렬
- CountVectorizer
- 자카드 유사도
- 아나콘다 가상환경
- 정렬 알고리즘
- 파이썬 가상환경
- 파이썬
- CSC
- sparse matrix
- csr
- jaccard similarity
- COO
- dok
- insertion sort
- merge sort
- Today
- Total
목록정렬 알고리즘 (2)
시래 블로그
정렬 알고리즘 중 하나인 병합 정렬(Merge sort)에 대해 알아보겠습니다. 이 글은 《Introduction to Algorithms》 3th edition을 정리한 것입니다. 분할 정복 병합 정렬은 분할 정복(divide-and-conquer)라는 접근법을 이용하는 정렬 알고리즘입니다. 그렇기 때문에 분할 정복이 무엇인지 살펴봐야 합니다. 분할 정복은 문제를 작게 쪼개서 해결하는 방식입니다. 구체적으로는 다음 3단계를 거쳐 문제를 해결합니다. 분할(divide) 하나의 커다란 문제를 그보다 크기가 작은 하위 문제(subproblem)로 분할합니다. 하위 문제는 기존 문제와 크기만 다를 뿐, 같은 문제여야 합니다. 정복(conquer) 문제가 충분히 작아질 때까지 계속해서 하위 문제로 분할합니다. ..
정렬 알고리즘 중 하나인 삽입 정렬(Insertion sort)에 대해 알아보겠습니다. 이 글은 《Introduction to Algorithms》 3th edition을 정리한 것입니다. 기본 개념 삽입 정렬은 카드 게임을 할 때 우리가 카드를 정렬하는 방식과 같은 방식으로 작동합니다. 처음에는 손에 카드가 없는 상태로 시작합니다. 카드 더미에서 카드를 한 장씩 가져와서 왼손에 쥐는데, 새로 가져온 카드를 알맞은 위치에 넣습니다. 알맞은 위치를 찾기 위해서 새로 가져온 카드를 왼손에 쥔 카드와 비교합니다. 오른쪽부터 왼쪽으로 차례대로 비교합니다. 예시 a) 오른쪽으로 갈수록 큰 수가 오도록 정렬을 한다고 하겠습니다. 순서가 [5, 2, 4, 6, 1, 3]인 배열을 정렬하고자 합니다. 계속해서 카드에 ..