Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 대용량 데이터 처리
- K-MOOC 매치업 강좌
- 대용량 데이터 이행
- GROUP함수
- K-MOOC
- 마이데이터 개념과 원칙
- 대용량데이터 처리방안
- EBH
- 무결성제약조건
- K-MOOC 3주차
- dbms
- 데이터 이행
- 계층적질의문
- 마이데이터 국민참여단
- 마이데이터 개념
- 백준
- 코테
- 대용량 데이터 Batch
- 마이데이터 비즈니스 모델
- 1주차:메타데이터와 데이터표준화
- 데이터 허브
- 측정계
- 2주차 : ETL/CDC
- 오라클
- ETCL
- 2022 마이데이터 국민참여단 후기
- 구름Level
- sql
- 고전압안전
- 코딩테스트
Archives
- Today
- Total
어제보다 더 나은 나
자료구조 (배열, 벡터, 연결리스트, 스택, 큐) 본문
* 배열 Array
- 삽입 / 삭제 : O(N) ( 삭제, 삽입하려는 위치 이외의 원소들을 한 칸씩 다 이동시켜야 하기 때문)
- 탐색 : O(1) ( 임의접근 Random access, 이유 : 인덱스를 사용했다고 해서 해당 인덱스에 이르기까지의 요소들을 모두 거치는 것이 아니라 배열의 주소 + 인덱스*type의 크기 = 메모리 주소값이라는 것을 이용해서 바로 해당 인덱스의 원소에 접근하기 때문)
- Python은 리스트를 사용
- C++에서는 size 변경불가 (생성 시, size와 type 고정)
* 벡터 Vector ( 2개 이상의 값 저장 )
- 삽입 / 삭제 : O(N)
- 탐색 : O(1)
- 동적 배열 (size 변경 가능)
* 연결리스트 Linked List (배열과 반대의 특성)
- 삽입 / 삭제 : O(1)
- 탐색 : O(N) (임의접근을 제공하지 않기 때문, 각 노드들이 위치한 메모리 주소값들이 불규칙적으로 존재하기 때문)
- Python에서는 따로 제공을 하지 않기에 직접 만들어서 사용해야 함.
- PS에서는 별로 쓰이지는 않지만 다른 자료구조들을 구현할 때 많이 사용.
* 스택 Stack
- 삽입 / 삭제 : O(1)
- 데이터가 바닥부터 하나씩 쌓이는 구조
- FILO ( 선입후출, 첫 번째로 들어온 데이터가 마지막에 나가는 구조)
- LIFO ( 후입선출, 가장 마지막에 들어온 데이터가 가장 처음 나가는 구조 )
- Python은 리스트로 구현
* 큐
- 스택과 반대되는 특성
- 삽입 / 삭제 : O(1)
- FIFO ( 선입선출, 첫 번쨰로 들어온 데이터가 처음으로 나가는 구조 )
- LILO ( 후입후출, 마지막에 들어온 데이터가 마지막에 나가는 구조 )
Queue 자료형으로도 구현이 가능하지만 이 자료형은 멀티스레드 환경을 고려한 thread-safe를 고려하여 만들어졌기에 실제 속도가 느린 편.
'코딩테스트 > 이론' 카테고리의 다른 글
시간복잡도, 공간복잡도, 오버플로우 (0) | 2022.08.10 |
---|
Comments