유튜버 노마드코더님의 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 |