개발자 99% 커뮤니티에서 수다 떨어요!
오늘 읽은 범위 : 에피소드 22. 자료구조와 알고리즘은 필수라고? ~ 25. 검색알고리즘이 뭐죠?
알고리즘 + 자료구조 → 컴퓨터 속도에 큰 영향을 준다구~!
Big - O는 알고리즘으로 작업을 완료할 때가지 걸리는 절차 수 N을 이용함
검색 알고리즘의 선형, 이진 검색 알고리즘 중에서 이진 검색 알고리즘이 효율적이라구~!
[ 알고리즘 ]
컴퓨터에게 내리는 지시 사항을 나열한 것
문제를 해결하기 위한 단계적인 절차나 방법을 정의한 것
패스파인더 알고리즘 : 목적지까지 최대한 빨리 가는 방법
압축 알고리즘 : 이미지 최대한 손상하지 않고 용량을 줄이는 방법
[ 자료구조 ]
자료구조의 자료는 데이터를 의미
데이터를 보기 좋게 보관 + 찾기 좋게 보관 → 어떤 자료구조를 사용하는지에 따라 속도에 영향을 줌
데이터 크기 기준, 검색을 위한 인덱스 구조, 생성 시간 구조 등
[ 시간복잡도 ]
프로그램의 작업 속도가 얼마나 빠른지 측정 방법
5단계 / 20 단계가 있다면 5단계만 필요한 코드의 작업 속도가 빠름
알고리즘으로 작업을 완료할 때까지 걸리는 절차 수 N → O(N), O(log N) [빅오 표기법]
선형 검색 알고리즘 : 배열의 길이가 N 이니 총 N번 검색 → O(N)
[ 메모리 ]
컴퓨터의 기억 공간
휘발성 메모리
대표적으로 램
컴픁러를 끄면 램에 있는 데이터 전부 사라짐
비휘발성 메모리
컴퓨터의 하드 드라이브 → C 드라이브, D 드라이브
켬퓨터를 껐다가 다시 켜도 데이터가 남아있음
[ 배열 ]
배열은 램에 줄줄이 이어진 형태로 공간을 차지하고 있음
컴퓨터는 배열의 시작 주소와 길이를 알고 있음 → 배열은 “읽는” 속도가 빠름
배열은 맨 앞부터 차곡차곡 채워져 있음 → 삽입 과 삭제가 느림
[Big - O]
실행 단계에 영향을 주는 요소만 봄
O(1)
O(N)
O(N2)
[ 검색 알고리즘 ]
선형 검색 알고리즘
배열이나 리스트와 같은 자료구조에서 특정 값을 찾는 알고리즘 중 가장 기본적인 방법
선형 검색은 데이터를 처음부터 끝까지 하나씩 차례대로 비교하여 원하는 값을 찾는 방법
이 알고리즘은 간단하지만 큰 규모의 데이터에서는 효율적이지 않을 수 있음
이진 검색 알고리즘
정렬된 배열에서 특정 값을 효율적으로 찾는 알고리즘 → 특정 자료구조에서만 사용이 가능함
이진 검색은 배열의 중간 요소와 찾고자 하는 값을 비교하여 값이 작으면 중간 요소의 왼쪽 반을, 값이 크면 오른쪽 반을 탐색하는 방법을 사용
이 과정을 반복하여 값을 찾거나 탐색 범위가 축소될 때까지 진행함
이진 : 두 개의 상태 또는 선택지
자료구조, 알고리즘 이름만 봐도 어려운 데 쉽게 이해할 수 있어서 좋았다!
kjyse2 : 에피소드 별로 나눠서 보기 편하고 좋았어요~
inalee : 사진까지 같이 올리셔서 보기 좋았어요
kho0432 : 최애 북틸에 써놓으신 글이 인상 깊었어요~