일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Zerobase
- algorithm
- 파이썬 알고리즘 인터뷰
- 파이썬
- 코드스테이츠
- codestates
- execution context
- Python
- 비동기
- 자바스크립트
- 자바
- 글또
- OS
- typeScript
- 자료구조
- context switching
- 알고리즘
- react 기초
- python algorithm
- REACT
- Computer Science
- 프로그래머스
- java
- 운영체제
- 개발공부
- useState
- JavaScript
- Operating System
- 컴퓨터공학
- node.js
- Today
- Total
목록Python Data structure array (2)
Back to the Basics
appen는 동적 배열의 끝에 요소를 추가해주는 반면 insertion은 원하는 위치에 요소를 삽입한다. 추가 연산의 시간 복잡도 appen와 마찬가지로 아래 두 경우로 볼 수 있다. 경우1 : 정적 배열에 남는 공간이 있을 때 : 배열 중간에 새로운 요소를 넣을 경우, 가장 뒤의 요소부터 insertion 할 위치까지의 요소들을 하나씩 뒤로 밀어준다. 그 후 빈 공간에 요소를 저장한다. 시간 복잡도 : 최악의 경우 index 0에 요소를 추가할 경우엔 모든 index를 하나씩 뒤로 밀어주게 된다. index로 요소에 접근하는 경우 O(1)이며 n번 반복하므로 O(n)이 된다. 경우 2 : 정적 배열이 찼을 때 : 새로운 배열을 만든 후 기존 데이터를 복사하여 저장한다. 그 후 위와 비슷하게 인덱스를 뒤..
정적 배열 : 배열의 길이가 정해져서 변하지 않는 배열 동적 배열 (dynamic array) : 배열의 길이가 동적으로 변하는 배열: 배열이 꽉 찼을 때 다른 메모리 공간에 기존 배열 크기의 두 배의 공간을 할당하고, 기존 배열을 복사하는 형식으로 내부적으로 공간을 늘린다 동적 배열은 내부적으로는 정적 배열을 기반으로 한 자료구조라고 한다. 그림출처 추가 연산 (append operation) 시간 복잡도 append는 아래의 그림과 같이 배열의 끝에 요소를 추가해주는 연산이다. 그림출처 동적 배열에 값을 추가할 때 시간 복잡도를 알아보자 경우 1 : 정적 배열 남는 공간 있을 때 단순히 index를 이용하여 접근하므로 O(1)이다. 겨우 2: 정적 배열이 꽉 찼을 때 값을 추가하기 위해 현재 사용 중..