본문 바로가기

자바스크립트12

[React] 리액트란? 이번에는 자바스크립트 라이브러리 중 하나인 리액트에 대해 알아보겠습니다! 리액트 먼저, 리액트(React, React.js, ReactJS)는 자바스크립트 라이브러리 중 하나로 사용자 인터페이스를 만들기 위해 사용됩니다. 또한, 리액트는 SPA(Single Page Application)의 UI를 생성하는데 집중한 라이브러리 입니다. 리액트의 특징 그렇다면 리액트는 왜 사용할까요? 리액트의 특징을 알아보며 생각해봅시다! 1. Component 기반 라이브러리 컴포넌트(Component)는 독립적인 단위의 소프트웨어 모듈을 말합니다. 리액트는 독립된 컴포넌트들을 조립하여 화면을 보여줍니다. 리액트는 헤더, 메인 콘텐츠, 네비게이션, 메뉴, 버튼 등 여러 컴포넌트들로 쪼개져 구성할 수 있기 때문에 전체적인 .. 2022. 1. 31.
힙 정렬 (Heap Sort) 힙 정렬 자료구조인 힙을 이용하여 정렬을 수행하는 방법입니다. 그렇다면 힙이 무엇일까요? 힙 (Heap) 힙은 완전 이진 트리이며 최소 힙과 최대 힙이 있습니다. 여기서 완전 이진 트리나 힙에 대해서 더 설명하지는 않겠습니다. 힙에 대해서 잘 모르시는 분께서는 공부를하고 다시 보시는 것을 추천드립니다. : ) 힙 정렬을 다시 말하자면, 최소 힙이나 최대 힙을 이용하여 정렬하는 방법입니다. 내림차순 정렬을 위해서는 최대 힙을 사용하고, 오름차순 정렬을 위해서는 최소 힙을 사용합니다. 힙 정렬의 과정은 다음과 같습니다. (설명을 위해 내림차순 정렬을 예시로 보여드리겠습니다.) 정렬할 데이터들을 최대 힙으로 만듭니다. 최대 힙의 루트에 있는 가장 큰 값을 마지막 요소와 교환하여, 힙의 사이즈를 줄입니다. 최대.. 2021. 9. 15.
퀵 정렬 (Quick Sort) 퀵 정렬 퀵 정렬은 1) 분할 정복 알고리즘의 하나로, 평균적으로 매우 빠른 수행 속도를 자랑합니다. 1) 분할 정복 분할 정복은 문제를 2개의 문제로 분리하여 각각 해결하고, 결과를 모아 원래의 문제를 해결하는 전략입니다. 퀵 정렬의 진행 과정은 다음과 같습니다. 데이터들의 배열에서 하나의 원소를 선택합니다. 선택된 원소를 피벗(pivot)이라고 부릅니다. 피벗을 기준으로 왼쪽에는 피벗보다 작은 값, 오른쪽에는 피벗보다 높은 값이 오도록 배열을 분할합니다. 피벗을 제외한 왼쪽 배열과 오른쪽 배열을 다시 정렬합니다. 더이상 분할이 불가능할 때까지 반복합니다. 퀵 정렬은 피벗을 기준으로 배열을 나누는 분할, 분할된 배열을 정렬하는 정복, 정렬된 분할 배열들을 다시 합치는 결합의 단계들로 이루어져 있습니다... 2021. 9. 13.
삽입 정렬 (Insertion Sort) 삽입 정렬 삽입 정렬은 자신의 위치를 찾아서 삽입하여 정렬을 완성하는 알고리즘 입니다. 선택 정렬의 순서는 다음과 같습니다. 두 번째 자료에서 시작하여 앞의 원소들과 비교해 삽입할 위치를 정합니다. 삽입될 위치가 정해지면, 뒤쪽의 원소들을 한 칸씩 뒤로 이동시킵니다. 원소를 정해진 위치에 삽입합니다. 앞쪽의 원소들과 비교 후, 자신의 위치를 정하고 그 위치에 삽입하는 방법으로 정렬을 합니다. 시간 복잡도 최악의 경우 selection sort와 마찬가지로, $O(n^2)$의 시간 복잡도를 가집니다. 수식으로 나타내면 아래와 같습니다. $$ (n-1) + (n-2) + ... + 2 + 1 = {n(n-1)} / {2} $$ 그러나 모두 정렬이 되어 있는 경우, 한 번씩만 비교하기 때문에 $O(n)$의 시.. 2021. 9. 13.