공부/자료구조(4)
-
시간 복잡도(Time complexity) 연산에 따른 빅오표기법
연산 크기 순서 O(1) < O(log n) < O(n) < O(n log n) < O(n2) < O(n3) < O(2n) < O(n!) < O(∞) * 시간 복잡도 연산 크기가 작은 순서대로 작성, 번호가 올라갈 수록 연산의 크기가 증가 * 시간 복잡도란? = 얼마나 빠른가 1. O(c) 또는 O(1) : 상수 시간 알고리즘 - 입력 갯수에 관계 없이 수행 속도(계산 횟수)는 1번 = 가장 효율적임 - 백준 24262번이 상수 시간 알고리즘 https://www.acmicpc.net/problem/24262 2. O(log n) : 로그 시간 알고리즘 - 데이터가 2배로 증가할 때, 연산의 수가 1단계 늘어나는 형태 ex. 이진검색 3. O(n) : 선형 시간 알고리즘 - 입력 개수에 비례적으로 수행 ..
2022.08.20 -
[Data-Structure] list, set, map
list 순차적인 선형적 자료구조 ArrayList, LinkedList, Stack, Vector set 수학적 집합을 구현하기 위한 자료구조 중복되지 않는 유일한 값들의 집합, 배열과 유사 구분 List Set 객체 동일한 값의 중복이 가능한가? O X 요소의 순서에 의미가 있는가? O X 인덱스로 요소에 접근할 수 있는가? O X map 키와 쌍으로 이루어진 컬렉션, 객체와 유사 key(식별자)의 중복은 허용하지 않으나 value의 중복은 가능 구분 Object Map 객체 키로 사용할 수 있는 값 문자열 또는 심벌값(ES6) 객체를 포함한 모든 값 이터러블 X O (삽입 순서를 기억함) 요소 개수 확인 (object).length map.size 1) 실행 시 key가 모두 동일한 type이며 모..
2022.06.15 -
[Data-Structure] Linked List
Array 자료구조는 논리적 저장 순서와 물리적 저장 순서가 일치하는 순차적 리스트이다. 저장 순서에 따라 할당된 인덱스 값으로 위치하는 element에 접근할 수 있으며, Array의 element 중 하나를 삭제하게되면 해당 원소에 접근하여 작업을 완료한 뒤 (O(1)) 삭제한 원소보다 더 큰 인덱스를 갖는 원소들을 shift하여 해당 원소가 비어있는 빈 공간을 없앤다.(O(n)) Array로 구현한 순차적 리스트의 단점은 연산 시 원소에 접근하여 작업을 완료한 뒤 또 한 가지의 작업을 추가적으로 해줘야 하는 것이다. (삽입 시에도 첫번째 자리에 새로운 원소를 추가한다면, 모든 원소들의 인덱스를 1씩 shift해줘야한다.) 순차적 리스트의 단점을 보완하기위한 자료구조가 Linked List이다. Li..
2022.05.13 -
[Data-Structure] Array
배열(Array)이란 여러개의 데이터를 하나로 그룹핑해서 관리하는 자료구조로, 가장 기본적인 자료구조이다. 논리적 저장 순서와 물리적 저장 순서가 일치하여, 인덱스 번호 순서대로 원소가 동일한 크기의 일정한 공간에 빈틈없이 연속적으로 나열된다. 인덱스를 기준으로 데이터가 저장되기 때문에, 인덱스 번호를 활용해서 자료를 조회할 수 있다. // 배열 만들기 const fruits = ['사과','바나나','배','포도','딸기']; console.log(fruits); // 배열의 길이는? console.log(fruits.length); //5 // 0번 인덱스의 자료를 콘솔에 찍기 console.log(fruits[0]); // -> '사과' // 1번 인덱스의 자료를 콘솔에 찍기 console.log(..
2022.04.12