전체 글
-
합병 정렬 (Merge Sort) 알고리즘Computer Science/자료구조&알고리즘 2021. 2. 17. 15:28
분할정복에 기반한 정렬 알고리즘. 배열을 모조리 분할한 다음에, 도로 합치면서 정렬이 이루어진다. 분할 단계와 합병 단계로 나뉜다. 수도코드 merge_sort(int a[], int len){ if(len == 1){ return; } // 분할 단계 merge_sort(a, len/2); merge_sort(a + len/2, len - len/2); // 합병 단계 int b[len]; int i = 0, j = len/2, k; for(k = 0; k
-
리액트(React.js) 개요Computer Science/React 2021. 2. 17. 11:50
1. 리액트의 아이디어 대규모 애플리케이션 중 프론트엔드 사이드에서 돌아가는 애플리케이션 구조를 관리하려면, 순수 자바스크립트로만 하기에는 다소 골치 아프다. 여러 프레임워크들이 이를 저마다의 관점에서 해결하려고 했고, 이들은 MVC, MVVM, MVW 등과 같은 여러 아키텍쳐들을 제시해왔다. 이들이 공통적으로 가진 것은 모델과 뷰. 모델은 애플리케이션의 데이터를 관리하는 영역이고, 뷰는 데이터를 기반으로 사용자에게 보이는 부분이다. 모델 데이터가 조회/수정되면, 변경 사항이 뷰에 반영되는 식이다. 업데이트하는 항목에 따라 어떤 부분을 찾아서 변경하는 작업은 간단한 듯하지만, 규모가 커지면 상당히 복잡해지면서 제대로 관리하지 못하면 성능이 떨어질 수 있다. 리액트를 개발한 페이스북 개발팀이 고안해낸 아이..
-
힙(heap)의 삽입과 삭제Computer Science/자료구조&알고리즘 2021. 2. 16. 17:27
힙(heap)의 삽입과 삭제 최대 힙을 기준으로 설명한다. 힙의 삽입 힙은 배열로 구현된 완전 이진 트리이다. 배열의 끝 인덱스부터 시작하여, 그 부모 노드와 비교하며 해당 노드보다 키 값이 더 크면 부모 노드의 인덱스를 증가시키는(트리에서 밑으로 끌어내리는) 과정을 키 값이 더 큰 부모 노드를 만날 때까지만 반복한다. 반복이 끝나면 현재 인덱스의 원소에 삽입할 키 값을 대입하고 힙의 삽입 과정이 종료된다. 수도코드 insert_max_heap(heap h, int item){ int i = ++(h.size); while(i > 0 && h[i/2]