ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 01. 자료구조 요약 정리
    멋사 부트캠프/자료구조 2025. 3. 19. 17:48

    1. 자료구조의 분류 체계

     

    * 자료구조의 소요 시간표( Big-O 표기법)

     

    성능 최적화의 핵심

    시간 복잡도: 효율적인 알고리즘을 사용해서 작업을 얼마나 빠르게 처리할 수 있는지. 예를 들어,

                         리스트 순차 탐색을 최적화하거나 불필요한 반복을 줄이는 방법.

    공간 복잡도: 메모리를 얼마나 효율적으로 사용할 것인지. 불필요한

                         데이터나 객체를 생성하지 않도록 관리하는 방법.

    코드의 가독성: 성능을 추구하더라도 코드가 지나치게 복잡해지면 나중에 다른 사람이

                             이해하기 어려워지니까, 항상 가독성과 유지보수성도 중요해.

     

     

    2. 자료 구조 요약 정리

    1) Array (배열)

    • 동일한 타입의 데이터들을 저장하며, 고정된 크기를 가지고 있다
    • 인덱싱이 되어 있어 인덱스 번호로 데이터에 접근할 수 있다.
    • 삽입 정렬, 빠른 정렬, 버블 정렬 및 병합 정렬과 같은 다양한 정렬 알고리즘에 사용
    • int a[] = {1, 2, 3} 그림

     

    2) Linked List (연결리스트)

    • 각 데이터 시퀀스가 순서를 가지고 연결된 순차적 구조
    • 동적인 데이터 추가/삭제에 유리하다.
    • 각 Node에는key와 다음 노드를 가리키는 포인터인next가 포함

     

    3) Stack

    • 순서가 보존되는 선형 데이터 구조
    • 가장 마지막 요소(가장 최근 요소)부터 처리하는 LIFO (Last In First Out)
    • 재귀 프로그래밍에서 함수 호출을 구현

    4) Queue

        • 가장 먼저 입력된 요소를 처리하는 FIFO (First In First Out)
        • 멀티스레딩에서 스레드를 관리, 대기열 시스템

    5)  Hash Table

    • 해시함수를 사용하여 변환한 값을 색인(index)으로 삼아 키(key)와 데이터(value)를 저장하는 자료구조
    • 데이터의 크기에 관계없이 삽입 및 검색에 매우 효율적
    • 사용자 로그인 인증, SET 데이터 구조 구현
    • 보통 테이블 내에 더 작은 서브그룹인버킷(bucket)에키/값(key/value) 쌍(pair)을 저장한다.

     

    6) Graph

    • nodes/vertices(노드) 사이에edge(엣지)가 있는 collection
    • directed(방향) 그래프는 일방통행, undirected(무방향) 그래프는 양방향
    • 소셜 미디어 네트워크, 검색 엔진에 의해 웹 페이지 및 링크, GPS에서 위치와 경로를 나타내는 데 사용

     

    7) Tree

    • 그래프가 계층적 구조를 가진 형태
    • 최상위 노드(루트)를 가지고 있음
    • 상위 노드를 부모(parent) 노드, 하위 노드를 자식(child) 노드라 한다.
    • 루트를 기준으로, 다른 노드로의 접근하기 위한 거리를 depth 라고 한다.
    • 같은 부모를 가지면서 같은 depth에 존재하는 노드들은 sibling 관계에 있다.
    • 자식이 없는 노드는 leaf 라고 한다.

     

    8) Heap

    • Binary Tree(이진트리)
    • 최소 힙 : 부모의 키 값이 자식의 키 값보다 작거나 같다. 루트 노드의 키 값이 트리의 최솟값
    • 최대 힙: 부모의 키 값이 자식의 키 값보다 크거나 같다. 루트 노드의 키 값이 트리의 최댓값

     

    '멋사 부트캠프 > 자료구조' 카테고리의 다른 글

    07. 그래프(Graph)  (0) 2025.05.15
    05. 큐(Queue)  (0) 2025.05.15
    04. Stack  (2) 2025.05.04
    03. 연결리스트  (1) 2025.04.17
    02. Array 활용  (0) 2025.03.19
Designed by Tistory.