Post

⚡ 자료구조 - 배열과 연결 리스트

⚡ 자료구조 - 배열과 연결 리스트

🔹 배열(Array)

  • 메모리에 연속적으로 저장됨
  • 인덱스를 통해 빠르게 접근할 수 있음
  • 크기가 고정되어 있음
  • 삽입과 삭제는 느리며 CPU 캐시 효율이 좋음
  • 접근 속도에 강점

🔹 연결 리스트(Linked-List)

  • 각 요소가 다음 요소의 주소를 포함
  • 메모리에 비연속적으로 저장됨
  • 순차 접근만 가능
  • 삽입과 삭제는 빠르지만 임의 접근은 불가능
  • 각 노드가 포인터를 포함하므로 메모리 오버헤드 발생
  • 중간 삽입 삭제에 강점

🔹 공통점

  • 둘 다 탐색은 느림

🔹 특징 비교

구분배열연결 리스트
메모리 저장 방식메모리에 연속적으로 저장됨메모리에 비연속적으로 저장됨
접근 방식인덱스를 통한 빠른 접근 가능순차적으로 접근해야 함
삽입과 삭제삽입과 삭제가 느림삽입과 삭제가 빠름
크기 조절크기 변경이 어려움유동적으로 크기 조절 가능
캐시 효율캐시 효율이 좋음캐시 효율이 좋지 않음
메모리 사용고정된 메모리를 사용각 노드가 포인터를 포함하므로 메모리 오버헤드 발생

🔹 시간 복잡도 비교

연산배열연결 리스트
접근O(1)O(n)
탐색O(n)O(n)
삽입 (끝)O(1) 또는 O(n)O(n) (단일 리스트 기준)
삽입 (중간)O(n)O(n)
삭제 (끝)O(1) 또는 O(n)O(n)
삭제 (중간)O(n)O(n)
  • 배열은 끝 삽입 시 공간이 남아있다면 O(1), 없으면 재할당으로 O(n)
  • 연결 리스트는 끝 삽입 시 마지막 노드 탐색이 필요하므로 O(n)
This post is licensed under CC BY 4.0 by the author.