728x90

Algorithm 6

[Sort] O(n²) 정렬 알고리즘을 알아보자! ( JavaScript Sort )

이번 포스팅에서 알아볼 내용은 정렬 ( Sort ) 알고리즘과 시간복잡도입니다. 정렬 종류의 기준 원소들의 교환 횟수에 따른 계산 복잡도 메모리 사용량 재귀성의 포함 여부와 둘다 포함하는 경우 안정성 비교 정렬 여부 알고리즘의 종류 ( 직렬, 정렬 ) 순응성 ( 입력을 미리 정하는 것이 실행 시간에 영향을 미치는 정도 ) 시간 복잡도가 O(n²)인 정렬 버블 정렬 ( Bubble Sort ) 선택 정렬 ( Selection Sort ) 삽입 정렬 ( Insertion Sort ) 시간복잡도가 O(n log n)인 정렬 병합 정렬/ 합병 정렬 ( Merge Sort ) 힙 정렬 ( Heap Sort ) 퀵 정렬 ( Quick Sort ) 트리 정렬 ( Tree Sort ) 그 밖의 정렬 카운팅 정렬 ( C..

Algorithm/Sort 2022.03.15

[비선형] Tree 알고리즘에 대해 알아보자!

앞서 포스팅한 스택 ( Stack ), 큐 ( Queue )등은 자료구조에서 선형 구조라고 합니다. 이번 포스팅에서는 알고리즘 중 비선형 구조를 갖고있는 Tree에 대해 알아보겠습니다. Tree 자료구조는 그래프의 한 종류로 Tree란 어떠한 노드의 집합으로 노드들은 서로 다른 자식을 가지며 이 때 각자의 노드는 재사용되지 않는 구조를 갖는다. Tree에는 여러가지 특징들이 존재합니다. Tree의 서로 다른 임의의 두 노드에 대해 두 노드를 연결하는 경로는 유일하다. Tree에는 사이클을 가지는 노드 집합이 존재하지 않는다. Tree에는 반드시 하나의 Root가 존재합니다 ( 최상위 노드, 부모 노드가 존재하지 않는 노드 ) 선형 구조란?? ( Linear ) 자료를 구성하는 데이터를 순차적으로 나열시킨..

[Linear] Javascript로 Stack과 Queue 구현하기

이번 포스팅의 주제는 Javascript로 Stack ( LIFO : 후입선출) Queue ( FIFO : 선입선출 ) 자료구조 배열 구현하기 입니다. 소스코드 예제와 함께 구현해 보겠습니다. 각각 메소드는 4개로 구성하였습니다. push : Stack( Queue )의 가장 위의 인덱스에 요소 추가 isEmpty : Stack( Queue )이 빈 배열인지 진리 여부 반환 pop : Stack의 가장 윗 부분( 마지막 인덱스 ) 반환, Queue의 경우 가장 첫 부분 ( 시작 인덱스 ) 반환 size : Stack( Queue ) 배열의 크기 반환 Stack의 예시코드 입니다. class Stack{ constructor(){ // stack을 구현할 배열 초기화 this._arr = []; } pus..

Algorithm/Linear 2022.02.19

동적 계획법 Dynamic Programming 이란?? (피보나치 수열)

이번 포스팅으로 알아볼 내용은 알고리즘을 푸는 방법 중 하나인 DP ( 동적 계획법 : Dynamic Programming ) 피보나치수열 ( Fibonacci ) 메모이제이션( Memoization ) 에 대해 알아보겠습니다. 수학과 컴퓨터 과학 그리고 경제학에서 동적 계획법( Dynamic Programming)이란 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말합니다. 동적 계획법은 부분 문제 반복과 최적 부분 구조를 가지고 있는 알고리즘을 일반적인 방법에 비해 더욱 적은 시간 내에 풀 때 사용합니다. 동적 계획법의 이론은 주어진 문제를 풀기 위해 문제를 여러 개의 하위 문제(SubProblem)로 나누어 푼 다음, 그것을 경합하여 최종적인 목적에 도달하는 것입니다. 각 하위 문제의 ..

Queue란? Java Queue Class에 대해 알아보자!

오늘 포스팅할 내용은 Queue의 정의 Java Queue Class 구현 Queue Class 사용 예제입니다. Queue란( 줄, 대기열 )? 선입선출( First In First Out )의 자료구조이며, 먼저 들어오는 Data가 먼저 나가게 됩니다. Data가 들어오는 가장 뒤 위치를 Back( or Rear )이라 하며, 입력 동작을 Enqueue라고 합니다. Data가 나가는 가장 앞의 위치를 Front라고 부르며, 출력 동작을 Dequeue라고 합니다. 일반적인 Queue는 유한 순서 리스트라고도 부릅니다. 원형 큐 Queue를 위해 배열을 지정하고 Queue를 사용하다 보면 배열의 앞부분이 빈다는 점을 활용하여 배열의 맨 마지막 부분을 쓰면 다시 맨 처음부터 다시 Queue를 채우기 시작하..

Algorithm/Linear 2022.01.19

Stack이란 ?, Java Stack class 사용법 & 예제

이번 포스팅에서 알아볼 내용은 Stack의 정의와 Java Stack Class 사용 예제를 알아보겠습니다. Stack 이란? ( 쌓다, 적재 ) 후입 선출 ( Last In First Out : LIFO ) 특성을 가지는 자료구조( Data Stucture )라고 말합니다. 입력 연산은 Push( 푸시 ), 출력 연산은 Pop( 팝 ), 조회 연산은 Peek( 픽 )이라고 부릅니다. 조회 연산시 데이터를 조회만 할 뿐, 순번( Index )은 변화시키지 않는 연산을 의미합니다. ( 선입선출 (First In First Out : FIFO)인 Queue와 비교되는 개념입니다. ) 우리가 흔히 알고 있는 Undo( Ctrl + z ) 영역이 바로 Stack입니다. 가장 최근에 실행한 명령어를 취소해야하기 ..

Algorithm/Linear 2022.01.19
728x90