시간 복잡도

메모리

volatile(휘발성 메모리)

non-volatile(비휘발성 메모리)

메모리 관점

컴퓨터는 배열을 생성할때 이 배열이 얼마나 긴지 최대 길이가 얼마인지 어디서 시작하는지 기억하고 있다.

메모리는 마치 데이터를 넣은 박스 같은거다.

<aside> 💡 javascript나 python은 이걸 우리 대신 핸들러 해주고 있다 그래서 데이터 구조나 알고리즘을 배우면서 알게됨. 그래서 속도가 좀 느려 질때도 있다 (c언어는 직접 핸들링 해야함)

</aside>

배열의 4가지 요소

배열의 4가지 요소

READ

컴퓨터는 배열이 어디서 시작하는지 알고 있으니깐 배열을 읽어오는데 엄청 빠르다 배열이 얼마나 긴지 상관없이 빠르다 왜냐면 인덱스를 읽어오는건 속도가 동일하다 5개를 읽어오던 100개를 읽어오던 단계는 같다.

Search

메모리는 내가 원하는 값을 검색으로 가져오기가 어렵다 박스가 닫혀 있는거라고 보면 이해가 쉽다

그 안에 무엇이 있는지는 모른다 주소를 통해 그 배열안에 무엇이 담겨 있는지 알 수 있다.

그래서 하나씩 돌면서 어디에 내가 원하는 값이 있는지 확인하는 단계가 있어서 시간이 오래 걸린다.

순서대로 0부터 끝까지 차근차근 찾는걸 선형 검색(Linear Search)이라 한다.

Untitled

Insert