728x90

CS/자료구조 & 알고리즘 10

스택과 힙의 차이 (메모리구조)

https://junghyun100.github.io/%ED%9E%99-%EC%8A%A4%ED%83%9D%EC%B0%A8%EC%9D%B4%EC%A0%90/ 스택(Stack)과 힙(Heap) 차이점 해당 Post는 스택(Stack)과 힙(Heap) 차이점를 정리한 파일이다. junghyun100.github.io 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(load)되어야 함 프로그램이 운영체제로부터 할당받는 대표적 메모리 공간은 4가지임 (코드 영역 - 실행할 프로그램의 코드 / 데이터 영역- 전역변수, 정적변수 / 스택 영역 -지역변수, 매개변수 / 힙 영역-사용자의 동적 할당) 힙 영역(완전 이진트리의 일종, 우선순위 큐를 위하여 만들어진 자료구조): 사용자가 직접 관리할 수 있는, 그..

List / Dictionary(C++에서의 map) / Set

[C++] set container 정리 및 사용법 (tistory.com) [C++] set container 정리 및 사용법 안녕하세요. BlockDMask 입니다 !오늘은 연관 컨테이너 set, multiset, map, multimap 중 set에 대해 학습해보겠습니다.순서는 set container -> set의 사용법 -> set의 생성자와 연산자 -> set의 멤버 함수 -> 다양한 blockdmask.tistory.com *list C++의 list는 딱 더블 링크드리스트와 구조가 같음. 다만, C++에서는 미리 구현되어있다는 점이 다름 순서를 유지하는 구조임. 노드기반 컨테이너이며, 이중연결리스트라고 생각하면 됨 원소 탐색 시 임의접근 반복자(at(), [])는 불가능하고, 양방향 반복자..

이진탐색 (시간복잡도와 이유)

[알고리즘] 이분 탐색 / 이진 탐색 (Binary Search) (velog.io) [알고리즘] 이분 탐색 / 이진 탐색 (Binary Search) 이진 탐색(이분 탐색) 알고리즘은 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이다.이진 탐색은 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 velog.io 정렬되어있는 리스트에서 탐색범위를 절반씩 좁혀가며 데이터를 탐색하는 방법 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘 시간복잡도는 O(logN) -> 여기서 log는 log₂ 단계마다 탐색 범위를 반으로(÷2) 나누는 것과 동일하므로 위 시간 복잡도를 가지게 된다. # 재귀 함수로 구현한 이진 탐색 def binary_search(array..

우선순위 큐

[자료구조] 우선순위 큐와 힙 (Priority Queue & Heap) (tistory.com) [자료구조] 우선순위 큐와 힙 (Priority Queue & Heap) 1. 우선순위 큐 1.1 우선순위 큐란? 큐(Queue)는 먼저 들어오는 데이터가 먼저 나가는 FIFO(First In First Out) 형식의 자료구조이다. 우선순위 큐(Priority Queue)는 먼저 들어오는 데이터가 아니라, 우선순위 suyeon96.tistory.com 큐(Queue)는 먼저 들어오는 데이터가 먼저 나가는 FIFO(First In First Out) 형식의 자료구조이다. 우선순위 큐(Priority Queue)는 먼저 들어오는 데이터가 아니라, 우선순위가 높은 데이터가 먼저 나가는 형태의 자료구조이다. 힙(..

레드블랙트리

레드블랙트리: 자가균형이진탐색트리 [자료구조] 레드-블랙 트리(Red-Black Tree)란? | 레드-블랙 트리 쉽게 이해하기 (tistory.com) [자료구조] 레드-블랙 트리(Red-Black Tree)란? | 레드-블랙 트리 쉽게 이해하기 레드-블랙 트리(Red-Black Tree) 레드-블랙 트리는 자가 균형 이진 탐색 트리이다. 레드-블랙 트리는 다음과 같은 조건들을 만족한다. 1. 모든 노드는 빨간색 혹은 검은색이다. 2. 루트 노드는 검은색 code-lab1.tistory.com

map과 hashMap차이

배고파서 까먹고 만든 블로그 :: C++ Hash와 Map의 차이점 (tistory.com) C++ Hash와 Map의 차이점 Hash와 Map의 차이점 STL에 보면 Map이라는 컨테이너가 있습니다. 이전에 정리한걸 다시 보면.. map - 특정 키(key)로 데이터를 접근하고 관리할 수 있다. - 키로 값에 접근하며 삽입과 삭제가 빠르다. wonjayk.tistory.com 특정 키에 대한 값을 찾는 과정에서 * map: 키-값의 컬렉션을 나타내는 추상 데이터 유형 레드블랙트리 알고리즘을 이용함 * hashMap: 이름 그대로 hash table을 이용해서 키-값 관계를 유지하며, 순서는 보장되지 않지만 빠른 조회 및 검색 필요 시 사용됨 그런데 STL 컨테이너를 보면 Hash Map은 없습니다. 이..

가장 빠른 정렬 알고리즘과 그렇게 생각하는 이유

알고리즘] 퀵 정렬(Quick Sort)에 대한 이해 (tistory.com) 알고리즘] 퀵 정렬(Quick Sort)에 대한 이해 소개 정렬 알고리즘 중 대표적인 알고리즘인 퀵 정렬을 소개하고자 한다. 퀵 정렬을 소개하기에 앞서, 대표적인 알고리즘들의 시간/공간 복잡도 표를 확인하면 다음과 같다. 평균 최악 메모리 readerr.tistory.com 퀵 정렬은 이름 그대로 '빠른 알고리즘'이라는 의미인데, 실제로 위 알고리즘들 중에서는 일반적으로 가장 빠른 알고리즘이라고 한다. 여기서 약간 의아할 수 있는 부분이 '병합, 힙 정렬이 최악의 경우에 퀵 정렬보다 시간 복잡도가 높은데, 어떻게 가장 빠른 알고리즘이지?'라는 생각이 들 수 있는데, 그 이유는 다음과 같다. 알고리즘을 공부를 여기까지 하는 분들..

정렬(선택,버블,삽입,병합,퀵,힙) / 무엇이 가장 빠르고 왜 빠른가 (동작과정)

(2) [게임코딩급행열차] 정렬 알고리즘 - YouTube 1.선택정렬 정렬되지 않은 데이터들 중에서 가장 작은 값을 추출하여 가장 맨 앞으로 정렬해나가는 알고리즘 시간복잡도 매 실행마다 최솟값 찾아야 하므로 이중 for문 사용하여 O(n^2) 2.버블정렬 인접한 두 수를 계속해서 비교하는 정렬 알고리즘 맨 뒤 인덱스부터 앞으로 정렬이 될 것임 시간복잡도 : O(n^2) 매번 자리를 바꿔야 하므로 비효율적임 (데이터가 많아졌을 경우 엄청난 연산) 3.삽입정렬 자료 배열의 모든 요소를 앞에서 부터 비교하고자 하는 타겟값(tmp)과 정렬된 값을 비교하여 자신의 위치를 찾아 삽입하면서 정렬해나가는 알고리즘이다. 매번 비교할 때마다 앞 부분에 해당하는 범위 모두 타겟값과 비교하여 해당 원소를 삽입할 수 있는 위..

728x90