less than 1 minute read

Day09

1. 자료구조의 종류

  • 무엇을 고려해야 하는가?
  • 자료구조는 일차원인 컴퓨터 메모리를 현실에 대응되도록 구조를 만든 것이다
  • 자료구조의 종류
  • 선형 구조 : 한 원소 뒤에 하나의 원소만이 존재하는 형태로 자료들이 선형으로 나열되어 있는 구조를 가진다.
  • 비선형 구조 : 원소 간 다대다 관계를 가지는 구조롤 계층적 구조나 망형 구조를 표현하기에 적절하다.

2. 시간 복잡도

  • 빅오표기법(Big-O notation) 빅오표기법
  • 상수항은 무시, 가장 큰 항 외엔 무시
  • 성능 측정하기 위해서 Date 객체 이용 성능측정코드

3. 배열

  • 특징

    • 고정된 크기를 가지며 동적으로 크기를 늘릴 수 없다.(단, 스크립트 언어는 가능하다)
    • 원하는 원소의 인덱스를 알면 O(1) 시간 내에 원소를 찾을 수 있다.
    • 원소를 삭제하면 해당 index에 빈자리가 생긴다.
  • JavaScript에서 사용

    • 배열 생성 배열 생성
    • 배열 요소 추가, 삭제 배열 요소 추가 삭제

4. 연결 리스트

  • 특징

    • 각 요소를 포인터로 연결하여 관리하는 선형 자료구조이다.
    • 각 요소는 노드라고 부르며 데이터 영역과 포인터 영역으로 구성된다.
    • 메모리가 허용하는 한 요소를 제한없이 추가할 수 있다.
    • 탐색은 O(n)이 소요된다.
    • 요소를 추가 제거할 때는 O(1)이 소요된다.
    • Singly Linked List, Doubly Linked List, Circular Linked List가 존재한다.
  • 배열과의 차이점

    • 배열은 순차적인 자료구조이기에 메모리에 연속적인 영역을 사용함. 반면 연결 리스트는 순차적이지 않기 때문에 각 데이터가 퍼져있음.

Categories:

Updated: