TIL_221013 자료구조

Alice1304·2022년 10월 16일

AIB SUMMARY

목록 보기
6/12

핵심단어

데이터구조, 알고리즘, 참조와 할당, 성능, 빅오표기법

학습목표

  • 데이터를 활용하는 입장과 컴퓨터 내부동작에 대해 생각해보기
  • 알고리즘 효율성에 대한 내용인 자료구조의 BIG O 및 복잡도 개념에 대해 배우기

WARM UP

데이터 구조와 알고리즘의 필요성

  • 더 최적화된 코드를 만들기 위해
  • 더 나은 개발자가 되기 위해

알고리즘

  • 여러 개의 지시사항 EX) 지도 (최단 경로)
  • 문제 해결을 위한 효율적인 코딩 절차
  • 알고리즘의 필요성

데이터 구조

  • 데이터는 AI를 움직이게 하는 기름과 같은 존재
  • 어떤 상황에서 어떤 데이터 구조를 사용해야 하는 지 알아야한다

자료구조의 배경

자료구조를 배우는 과정

  • 프로그래밍은 인간의 행동을 편하게 하기 위해 만들어졌다
  • 효율성에 집중하기
  • 자료구조 = 전체적인 관점의 기초공사
  • 대용량의 다양한 데이터를 효율적으로 처리(저장)하기 위해 자료구조 개념 개발
  • 효율적인 처리의 예
    • 자동화, 빠른계산, 반복되는 내용 처리, 여러개의 값을 한 번에 처리, 특정 변수처리, 등

자료구조의 다양한 활용

  • 파이썬에서는 리스트와 튜플을 통해 자료구조의 기본인 배열을 구현할 수 있게 됨
  • 배열은 무엇인가?
    - 컴퓨터 과학에서 사용되는 기본적인 용어
    • 각각의 변수를 하나의 변수에 여러 개의 인덱스로 묶는 것
    • 파이썬에서는 배열을 리스트와 튜플로 구현하고 활용

파이썬의 리스트와 자료구조의 리스트

  • 파이썬은 리스트 자료형이 자료구조의 연결리스트로 기능을 지원한다

  • 리스트는 임의이 메모리(위치)에 자료를 동적으로 처리할 수 있다

  • 파이썬의 리스트는 자료구조의 배열과 연결리스트의 특징을 모두 가지고 있다

    • 배열의 특징 : 인덱스를 사용해 노드에 접근 가능
    • 연결리스트의 특징 : 인덱스 크기를 확장 가능, 서로 다른 자료형을 노드로 가질 수 있다.

파이썬의 리스트

  • 자료구조의 기본은 배열이라 할 수 있고, 파이썬에서는 리스트와 튜플로 구현 핤수 있다
  • 리스트와 튜플의 핵심은 인덱스를 사용하는 것
      

자료 구조와 효율성

Big O 표기법

  • 알고리즘 실행 효율성에 대해 측정할 방법이 필요하다
  • 빅오표기법을 활용하여 알고리즘 효율을 확인할 수 있다
    • 빅오표기법을 활용하여 알고리즘 효율 확인
      • 빅오 표기법은 해당 코드가 얼마나 수행 되었는지에 따라 효율성 확인
  • 빅오표기법은 데이터 입력값 크기에 따라 알고리즘 실행 속도의 변화를 설명하는 방법
  • 알고리즘 계산 복잡도 종류
    • 시간 복잡도 : 알고리즘 활용시간이 얼마나 걸렸는지
    • 공간 복잡도 : 문제해결을 위해 얼마만큼의 메모리 저장공간이 필요한지
      • 하드웨어의 성능이 증가하면서 공간복잡도 보다, 시간복잡도가 더 중요해짐

https://jwoop.tistory.com/9

profile
기록기록

0개의 댓글