[노개북!] 06. TIL: IT 5분 잡학사전

Haru ☁·2023년 8월 31일
0

TIL (23.08.31.목)

Day 07

📙 IT 5분 잡학사전
📑 오늘 읽은 범위: episode 22~25

✅ 세 줄 요약


  1. 자료구조와 알고리즘은 코드를 효율적으로 만들고, 데이터를 효율적으로 보관하고 찾기 위해 필수적이다.
  2. 빅오(Big-O) 표기법은 시간복잡도는 알고리즘으로 작업을 완료할 때까지 걸리는 절차 수 N을 이용해서 O(N), O(log N)과 같이 표현한다.
  3. 거대한 배열을 다룰 때 선형 검색보다 '이진 검색 알고리즘'이 더 효과적이다.

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


22장. 자료구조와 알고리즘은 필수라고?

코드를 효율적으로 만들기 위해
개발자라면 반드시 다루는 데이터, 데이터를 효율적으로 보관하고 찾지 위해
자료구조와 알고리즘이 필요하다!

  • 자료구조의 여러가지 방식
    • 데이터 크기 기준
    • 검색을 위한 인덱스 기준
    • 생성 시간 기준 등...

프로그램의 목적에 따라 방식이 다양하다.

23장. 배열?

  • 시간복잡도: 프로그램의 작업 속도가 얼마나 빠른지 측정하는 방법
  • 메모리: 컴퓨터의 기억공간
    -휘발성 메모리(램(RAM))
    -비휘발성 메모리(하드디스크)

램은 데이터가 저장된 위치와 상관없이 일정한 접근 속도를 보장한다.
램은 주소가 많이 적힌 창고와 비슷한데, 만약 주소가 없다면 처음부터 끝까지 일일이 찾아야 하지만 주소가 있는 램에게는 "주소 4번 박스에 있는 데이터를 봐"라고 지시하면 되기 때문에 빠르다.

램의 관점에서 본 배열의 모습
배열을 만들 때는 배열의 길이를 컴퓨터에게 알려줘야 한다.

"길이가 4인 배열을 램에 할당해줘"

박스 예시로 말하자면,

"박스 4개를 붙여서 창고에 자리 잡아줘!"

즉, 램에는 박스 4개가 연이어 붙은 모양으로 배열 공간이 생기게 된다.

  • 배열의 원리
  1. 배열은 램에 줄줄이 이어진 형태로 공간을 차지하고 있다.
  2. 컴퓨터는 배열의 시작 주소와 길이를 알고 있다. 그래서 배열은 읽는 속도가 아주 빠르다.
  3. 배열은 맨 앞에서부터 차곡차곡 채워져 있어야 한다.

24장. 알고리즘의 속도는 어떻게 표현할까?

알고리즘의 속도는 수행 작업을 몇 단계로 하느냐로 결정한다.
알고리즘의 속도를 표현하는 방법은 Big-O 표기법이다

  • 빅오(Big-O) 표기법 : 시간복잡도는 알고리즘으로 작업을 완료할 때까지 걸리는 절차 수 N을 이용해서 O(N), O(log N)과 같이 표현한다.

선형 검색 알고리즘은 배열의 길이가 N일 때 총 N번 검색하는 과정이 필요한다.

같은 문장, =

선형 검색 알고리즘의 시간 복잡도는 O(N)이다.


25장. 검색 알고리즘?

'선형 검색(linear search) 알고리즘'과 '이진 검색(binary search) 알고리즘'

  • 선형 검색
    -맨 처음 배역부터 검색을 시작하는 알고리즘
    -배열의 길이가 길어지면 시간도 늘어남..

  • 이진 검색
    -배열의 중앙에서 검색을 시작해서, 그 숫자와 찾으려는 숫자가 큰지 작은지 확인한다. 그리고 또 그 그룹에서 중앙을 찾아 비교하기를 반복하며 찾는다.
    -거대한 배열을 다룰 때 효과적
    -배열은 항상 정렬되어 있어야 한다.


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


코딩을 하면 주변에서 자주 듣는 자료구조와 알고리즘에 관한 이야기들. 예전에는 조금 단어가 낯설고 꼭 필요한가 라고 생각했었다. 그런데 책을 읽으며 곰곰히 생각해보니 자료가 뒤죽박죽 정리가 안되어 있고 찾기도 힘들면 나중에 유지,보수하는 것도 힘들어질 것 같았다. 자료구조와 알고리즘의 속도를 표현하는 방법인 빅오표기법은 꼭 배워야할 것 같다.

❔ 궁금한 내용은?


없음!

❗ 오늘의 미션!


나의 최애 북틸

  1. @erin1122
    책 내용을 잘 정리해서 다시 복습하기 좋았다.
    https://nomadcoders.co/community/thread/8179

  2. @inalee
    글 내용이 깔끔하고, 특히 소감에서 공감되는 부분이 많아 인상깊었다. 공식문서가 어렵게 느껴지는 이유, 언어를 배우고 프로젝트를 시도하면서 길을 잃어가는 결말 등..
    https://nomadcoders.co/community/thread/8120

  3. yelm-ing
    책 내용도 잘 정리되어 있고, 소감, 요약 등에서 공감되고 배우는 부분도 많아서 선정하게 되었다.
    https://yelm-ing.tistory.com/21

profile
😆 I CAN DO IT!

0개의 댓글