Data Structure

자료구조란

데이터를 저장하고 관리하는 방식

자료구조는 데이터를 체계적으로 저장하여 메모리를 효율적으로 사용할 수 있게 하고, 빠르고 안정적으로 데이터를 처리할 수 있도록 도와준다.

10개의 변수에 10개의 숫자를 선언하는 것보다 하나의 배열에 10개의 숫자를 저장하는게 좋다.

num 1 =10
num 2 =20
 
-> num = [10,20]

자료구조 리스트

  • 선형 자료 구조
    • 배열
    • 동적 배열
    • 연결 리스트
    • 스택
    • 해쉬 테이블
  • 비선형 자료 구조
    • 트리
    • 그래프

알고리즘

  • 문제 해결 방법 : 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법
  • 자주 쓰이는 문제 해결 방법은 패턴화 (알고리즘)
    • BFS, DFS, Binary Search, Dijkstra
  • 한 문제를 해결할 수 있는 알고리즘은 다양하다.
    • 각 문제에 적합한 알고리즘을 선택할 수 있어야 한다.
    • 알고리즘을 평가할 수 있어야 한다.

알고리즘 평가 기준

  • 시간 복잡도
  • 공간 복잡도
  • 구현 복잡도

시간복잡도와 공간복잡도는 보통 trade-off 관계입니다. 실행시간을 줄이기 위해서는 메모리를 더 사용해야 하고, 메모리를 사용량을 줄이다보면 실행시간이 늘어나게 됩니다.

메모리

데이터의 기본 단위인 비트,바이트 (2진법, 16진법)

리스트

메모리상에서 연속적으로 저장된다.

연결 리스트

메모리상에서 불연속적으로 저장한다. 다음 값에 대한 주소도 함께 저장한다.