[Data Structure] Array VS Linked List

link717·2021년 8월 16일
0

DataStructure

목록 보기
2/3
post-thumbnail

🌼 Memory

  • CPU (Central processing unit)
    하드 드라이브에 있는 데이터를 토대로 연산 처리하여 출력장치로 결과를 표시할 때 사용된다.

  • 하드 드라이브
    비휘발성(non-volatile) 메모리로 가격이 저렴하고 용량이 크고 전원이 꺼져도 Data가 저장되어 있는 대신에 동작속도가 느리다는 특성이 있다.

  • RAM(Random Access Memory)
    휘발성(volatile) 메모리로 가격이 비싸고 용량이 적은 대신 전원이 꺼지면 Data가 사라지지만 동작속도가 빠르다는 특성이 있다.

이론적으로는 CPU와 하드 드라이브만을 가지고도 컴퓨터의 연산처리를 할 수 있지만 하드 드라이브의 속도 문제로 인해서 고성능 CPU를 가졌더라도 전반적인 성능이 떨어지는 현상이 발생할 수 있다. 이를 막기 위해서 생겨난 또 하나의 데이터 기억장치가 RAM이다. 휘발성 메모리이기 때문에 반영구적으로 데이터를 보관할 수는 없지만 CPU의 데이터 처리 속도를 감당할 수 있을만큼 빠르고 데이터 구조의 타깃이 되는 것도 바로 이 RAM이다.

🌼 List

구분ArrayLinked List
Data의 삭제/삽입Data를 추가하거나 삭제할 때, 맨 뒤쪽 data를
움직여 공간을 확보하고 data를 추가하거나
삭제해야 하므로 Linked list보다 성능이 좋지 않다.
앞/뒤 node가 가리키는 주소만 변경하면 되므로
data의 삽입/삭제가 매우 손쉽다.
Data 접근index를 통해서 data의 주소로 바로 접근할 수 있어
속도가 매우 빠르다.(Random Access)
index의 개념이 없어 특정 data로의 접근성이
Array에 비해서 상대적으로 낮다.
Data의 확장성없다있다

  • 데이터의 검색의 경우 Array list는 모든 index의 값에 접근해서 내가 원하는 값이 있는지 확인하는 과정, 즉 선형탐색(Linear Search)을 해야하므로 단순 읽기보다 더 많은 시간이 소요된다.

출처-YOUTUBE 생활코딩 / IT 동아 / YOUTUBE 노마드 코더

profile
Turtle Never stop

0개의 댓글