시간 복잡도 (time complexity)
데이터 구조의 오퍼레이션 or 알고리즘이 얼마나 빠르고 느린지 측정하는 방법
실제 '시간'을 측정하는 방법이 아니라, '얼마나 많은 단계가 있는 가?'로 측정
메모리 관점에서 array가 어떻게 보일까?
그전에 메모리의 2가지 종류에 대해 알아보자
1. 휘발성 메모리 volatile memory - ex) RAM radom access memory, program variable
2. 비휘발성 메모리 non-volatile memory - ex) cpu 하드드라이버
데이터 읽는 속도 : 휘발성 메모리 > 비휘발성 메모리
왜냐하면, 휘발성 메모리에 접속하는 방법은 순차적이 아닌, random하게 접근 가능하기 때문
돌아와서, 메모리 관점에서 array가 생성될 때, 할당된 복수의 memory address를 정해 놓는다.
javascript
나 python
등의 프로그램은 개발자들이 모르는 사이에 스스로 핸들링하고 있는 반면,C
와 같은 언어는 프로그램이 직접 핸들링하지 않기 때문에 상대적으로 더 빠른 속도를 지니고 있다.
array의 첫 번째 요소element
는 0으로 읽혀 index
한다.
특유의 random access 로 인해 많은 자료를 읽을 때 용이하다. array의 최대 장점
주로 0부터 순차적으로 검색하는 선형 검색 linear search
방법을 취하고 있기 때문에, 배열의 검색은 그닥 빠르지 않다.
(배열의 검색을 빠르게 하는 방법은 추후 삽입 예정)
insert
하는 경우는 어렵지 않다.delete
하려면, 해당 공간 자체를 없애면 된다.