TIL 날짜
2023. 02. 23
오늘 읽은 범위
에피소드 22: 자료구조와 알고리즘은 필수라고?
에피소드 23: 배열이 뭐죠?
에피소드 24: 알고리즘의 속도는 어떻게 표현할까?
에피소드 25: 검색 알고리즘이 뭐죠?
책에서 기억하고 싶은 내용을 써보세요.
알고리즘
: 컴퓨터에게 내리는 지시 사항을 나열한 것 자료구조
: 데이터를 효율적으로 보관하고 찾는 방식이며 여러 방식이 존재한다. 메모리는 컴퓨터의 기억 공간을 뜻하며 비휘발성 메모리
(하드 드라이브)와 휘발성 메모리
(램)이 존재한다.
램은 배열로 구성되어 있어 데이터가 저장된 위치와 상관 없이 일정 접근 속도를 보장한다. 그리고 데이터에 접근하는 속도가 안정되고 빠르다.
배열
의 특징
선형 검색(linear search)
로 0번 부터 모든 위치를 검색해서 속도가 느리다. 알고리즘의 속도를 표현하는 방법은 Big-O
O(N), O(log N)
으로 표현 시간 복잡도 예시 및 종류
// 시간 복잡도 O(1), Big-O는 실행 단계에 영향을 주는 요소만 확인
function print_first(arr) {
console.log(arr[0])
}
function print_first(arr) {
console.log(arr[0])
}
// 배열 arr의 모든 데이터를 출력 하는 코드 시간 복잡도 : O(N)
function print_all(arr) {
for (let i of arr){
console.log(arr[i])
}
}
// 이차 시간(Quadratic time) : O(N^2)
function print_twice(arr) {
for (let i of arr) {
for (let j of arr) {
console.log(arr[i]);
}
}
}
검색 알고리즘
선형 검색 (Linear Search)
이진 알고리즘(Binary Search)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
더 나은 개발자가 되기 위해서는 "자료구조 와 알고리즘"에 대한 학습이 필요할 것 같다.