CODEDRAGON ㆍDevelopment/Algorithm, DataStructure
배열(array)의 장단점
장점 |
· 구현이 쉽습니다. · 검색 성능이 좋습니다. 인덱스(index)를 이용한 무작위 접근(random access)이 가능하므로 검색에서 빠른 성능을 기대할 수 있습니다. · 순차 접근(sequential access)의 경우에도 배열은 데이터를 하나의 연속된 메모리 공간에 할당하므로 연결 리스트(Linked list)보다 빠른 성능을 보여줍니다. · 참조를 위한 추가적인 메모리 할당이 필요 없습니다.다. |
단점 |
· 자료의 삽입과 삭제에 비효율적입니다. 자료의 삽입(Insert)과 삭제(Delete)시 다음 항목의 모든 요소를 이동시켜야 합니다. 이를 연산 작업이 수행되어 비효율적이며 자료의 수가 많이지면 비례하여 성능이 떨어지게 됩니다. · 크기를 바꿀 수 없습니다. 배열은 생성할 때 지정한 크기를 바꿀 수 없기 때문에 너무 크게 잡으면 메모리가 낭비되고 너무 작게 잡으면 그 이상의 자료를 저장할 수 없게 됩니다. · 메모리의 재사용이 불가능합니다. 배열은 초기 사이즈만큼의 메모리를 할당 받아 사용하기 때문에 데이터의 존재 유무와 상관없이 일정한 크기의 메모리 공간을 점유하고 있습니다. 즉 이미 삭제한 데이터라고 하더라도(배열 요소를 삭제) 배열 자체가 메모리에서 제거되지 않는 이상 삭제된 데이터의 메모리 공간을 재사용 할 수 없습니다. |
'Development > Algorithm, DataStructure' 카테고리의 다른 글
Raft: The Understandable Distributed Consensus Protoco (0) | 2018.08.05 |
---|---|
The Raft Consensus Algorithm (0) | 2018.07.31 |
VISUALGO - 싱가폴 대학에서 만든 알고리즘 학습 사이트 (0) | 2018.04.28 |
피보나치 수열 (Fibonacci Sequence) (0) | 2018.02.08 |
List vs Set vs Map (0) | 2017.10.17 |