Computer Science/DataStructure

Array

유튜버 노마드코더님의 Array강의를 보고 다시 배열 정리를 해보려고 한다.

 

Time Complexity

소요시간 X How many Steps in work

Memory Complexity

volatile 휘발성 메모리

non volatile memory  비휘발성 메모리

 

배열이 Read Search Add Delete 하는 과정

 

Read

컴퓨터는 배열의 시작 주소를 알고 있고 그렇기 때문에 바로 원하는 위치의 주소값을 가져올 수 있다.

Read 빠름

 

Search

시작 주소부터 해당 Value가 들어 있는지 확인하는 작업

순차적인 접근 array[0] -> array[1] -> array[2] -> yes~! return이기에 비 효율적이다

이를 선형 검색 Linear Search라고 한다.

 

Add
배열 마지막에 추가하는 경우는 빠르지만

첫번째 주소에 Add할 경우 기존 배열 요소(element)를 다 밀어버리고 추가하기 때문에 비효율적
배열의 크기 이상으로 추가할 경우 새로 배열을 생성하고 그곳에 copy한 후 더해야 하기 때문에 더더욱 비효율적

 

Delete
Add와 마찬가지로 맨 앞 요소를 삭제할 경우 맨 앞 요소를 삭제하고 남은 요소들을 앞으로 미는 과정이 필요하기 때문에 비효율적

 

다음 강의에선 검색 추가 삭제에서 빠른 자료구조와 알고리즘에 대해서 알아보자

 

'Computer Science > DataStructure' 카테고리의 다른 글

ListIterator와 Enumeration  (0) 2022.11.14
Iterator  (0) 2022.11.14
Implement Linked List  (0) 2021.04.26
Linked List (연결 리스트)  (0) 2021.03.07
ArrayList  (0) 2021.02.25