📙 IT 5분 잡학사전
📑 오늘 읽은 범위: episode 22~25
코드를 효율적으로 만들기 위해
개발자라면 반드시 다루는 데이터, 데이터를 효율적으로 보관하고 찾지 위해
자료구조와 알고리즘이 필요하다!
프로그램의 목적에 따라 방식이 다양하다.
램은 데이터가 저장된 위치와 상관없이 일정한 접근 속도를 보장한다.
램은 주소가 많이 적힌 창고와 비슷한데, 만약 주소가 없다면 처음부터 끝까지 일일이 찾아야 하지만 주소가 있는 램에게는 "주소 4번 박스에 있는 데이터를 봐"라고 지시하면 되기 때문에 빠르다.
➡ 램의 관점에서 본 배열의 모습
배열을 만들 때는 배열의 길이를 컴퓨터에게 알려줘야 한다.
"길이가 4인 배열을 램에 할당해줘"
박스 예시로 말하자면,
"박스 4개를 붙여서 창고에 자리 잡아줘!"
즉, 램에는 박스 4개가 연이어 붙은 모양으로 배열 공간이 생기게 된다.
알고리즘의 속도는 수행 작업을 몇 단계로 하느냐로 결정한다.
알고리즘의 속도를 표현하는 방법은 Big-O 표기법이다
선형 검색 알고리즘은 배열의 길이가 N일 때 총 N번 검색하는 과정이 필요한다.
같은 문장, =
선형 검색 알고리즘의 시간 복잡도는 O(N)이다.
'선형 검색(linear search) 알고리즘'과 '이진 검색(binary search) 알고리즘'
선형 검색
-맨 처음 배역부터 검색을 시작하는 알고리즘
-배열의 길이가 길어지면 시간도 늘어남..
이진 검색
-배열의 중앙에서 검색을 시작해서, 그 숫자와 찾으려는 숫자가 큰지 작은지 확인한다. 그리고 또 그 그룹에서 중앙을 찾아 비교하기를 반복하며 찾는다.
-거대한 배열을 다룰 때 효과적
-배열은 항상 정렬되어 있어야 한다.
코딩을 하면 주변에서 자주 듣는 자료구조와 알고리즘에 관한 이야기들. 예전에는 조금 단어가 낯설고 꼭 필요한가 라고 생각했었다. 그런데 책을 읽으며 곰곰히 생각해보니 자료가 뒤죽박죽 정리가 안되어 있고 찾기도 힘들면 나중에 유지,보수하는 것도 힘들어질 것 같았다. 자료구조와 알고리즘의 속도를 표현하는 방법인 빅오표기법은 꼭 배워야할 것 같다.
없음!
@erin1122
책 내용을 잘 정리해서 다시 복습하기 좋았다.
https://nomadcoders.co/community/thread/8179
@inalee
글 내용이 깔끔하고, 특히 소감에서 공감되는 부분이 많아 인상깊었다. 공식문서가 어렵게 느껴지는 이유, 언어를 배우고 프로젝트를 시도하면서 길을 잃어가는 결말 등..
https://nomadcoders.co/community/thread/8120
yelm-ing
책 내용도 잘 정리되어 있고, 소감, 요약 등에서 공감되고 배우는 부분도 많아서 선정하게 되었다.
https://yelm-ing.tistory.com/21