TIL/TIL - 노개북

[TIL_7 IT잡학사전] 에피소드 22~25

Aytekin 2023. 1. 19. 09:07
728x90

오늘 TIL 3줄 요약

  • 자료구조와 알고리즘은 개발의 효율과 성능을 위한 것. 효율성에 대한 고민은 언제나 끝이없다.
  • 배열은 컴퓨터안에 있는 메모리라는 창고에 데이터라는 상자를 쌓아두는 방식이다.
  • 알고리즘의 속도는 시간복잡도 개념으로 측정하며 표기법은 빅오표기법!
  • 이진 알고리즘은 정렬된 데이터를 절반씩 쪼개가며 찾는 방법!

TIL (Today I Learned) 날짜

2023.01.19

오늘 읽은 범위

  • 에피소드 22 : 자료구조와 알고리즘은 필수라고?
  • 에피소드 23 : 배열이 뭐죠?
  • 에피소드 24 : 알고리즘의 속도는 어떻게 표현할까?
  • 에피소드 25 : 검색 알고리즘이 뭐죠?

책에서 기억하고 싶은 내용을 써보세요.

  • 자료구조와 알고리즘은 처음 개발할 때는 굳이 공부할 필요는 없다. 그러나 나중에 코드의 관리와 효율성을 위해서는 꼭 적용하고 고민해야하는 부분이다.
  • 메모리는 휘발성 메모리와 비휘발성 메모리로 나뉜다. 휘발성 메모리 중 대표적인 것이 램(RAM)이다.
  • 램은 창고같은 역할을 하는데 그 창고에 데이터를 적재하는 방식을 배열이라고 생각하면 된다.
  • 배열에 있는 데이터를 읽고(read), 검색(search)하고, 추가(add)하고, 삭제(delete)하는 작업은 각각 방법과 속도가 다름.
  • 배열을 읽는 속도는 빠르지만 검색, 추가, 삭제는 데이터(상자)가 쌓여있기 때문에 느림.

  • 알고리즘의 속도 시간복잡도라는 개념으로 표현하는데 ,빅오(Big-O)표기법으로 나타낸다.
  • O(1) - 상수시간(constant time) : 그 알고리즘의 실행단계는 1번이다. 즉 배열길이와 상관없이 늘 같다.
  • O(N) - 일차함수?
  • O(n²) - 이차시간(quadratic time) : 중첩반복문이 있을때
  • y축을 시간, x축을 배열 길이로 둔 함수로 생각하면 된다.

  • 선형검색(Linear search) - 앞에서부터 하나하나 찾는것이다. 배열의 수만큼 시간이 걸린다. O(N)
  • 이진검색(binary search) - 정렬이 되어있는 배열에서만 사용 가능하다. 시간복잡도가 작으므로 배열의 크기가 클 때 효율을 발휘한다. O(logN)

이진검색 시간복잡도. 배열이 커질수록 시간의 증가량은 줄어든다.

 

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 알고리즘이나 자료구조 모두 효율성을 만들기 위한 목적이다. 다른 분야에서도 마찬가지로 효율적으로 일하고 관리하기 위한 고민을 하는데 똑같이 코딩하고 개발을 할때에도 사용하는 기술이나 도구는 다르지만 고민거리는 여전히 같다는 생각이 든다.
  • C언어를 찍먹할 때 포인터라는 개념이 잘 잡히지 않아 고생했었는데, 이게 메모리 읽는거를 말하는 것인지 다시 한번 생각하게 되었다. 책을 읽으니 이렇게 뒤죽박죽이던 개념들이 하나하나 정리가 되어가는 것 같아서 감사하다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 알고리즘 공부는 어떻게 하는것이 좋을까?? 수학의 정석 보는것처럼 문제 많이 풀면 되는건가...

오늘 읽은 다른사람의 TIL

728x90