TIL(2023. 10. 12)
DAY5
📖 오늘 읽은 부분 : 에피소드 22 ~ 에피소드 25
💡
마당03 코딩별 안내서 --- 컴퓨터 공학 편
에피소드 22 자료구조와 알고리즘은 필수라고?
코드를 효율적으로 짜기위해서 자료구조와 알고리즘이 필요하다.
알고리즘 : 컴퓨터에게 내리는 지시 사항을 나열한 것,
=> 패스파인더(pathfinder) 알고리즘 : 목적지까지 최대한 빨리 가는 방법을 구현하기 위해 사용
=> 압축(compression) 알고리즘 : 이미지를 최대한 덜 손상하면서도 용량을 효율적으로 줄일 수 있는 알고리즘
(ex.PNG,JPG.. 이미지 압축 알고리즘으로 만든 파일들)
프로그램의 목적이 다양하기 때문에 자료구조의 방식도 다양하다.
에피소드 23 배열이 뭐죠?
시간 복잡도 : 프로그램의 작업 속도가 얼마나 빠른지 측정하는 방법.
메모리 :
- 휘발성 메모리 : 램(RAM, random access memory)
램은 데이터에 접곤하는 속도가 안정되고 빠르다 - 비휘발성 메모리 : 컴퓨터의 하드 드라이브
배열의 특징
- 배열을 읽는 방법과 속도
- 배열을 검색하는 원리와 속도 : 선형 검색(linear search)
- 배열에 데이터를 삽입하는 원리와 속도
- 배열에서 데이터를 삭제하는 원리와 속도
배열의 원리
- 배열은 램에 줄줄이 이어진 형태로 공간을 차지하고 있다.
- 컴퓨터는 배열의 시작 주소와 길이를 알고 있다. 그래서 배열은 읽는 속도가 아주 빠르다.
- 배열은 맨 앞부터 차곡차곡 채워져 있어야 한다.
그래서 배열은 삽입과 삭제가 느리다.
에피소드 24 알고리즘의 속도는 어떻게 표현할까?
알고리즘으로 작업을 완료할 때까지 걸리는 절차 수 N => O(N), 0(log N) : 빅오(Big-O) 표기법
배열의 길이와 상관없이 함수는 딱 한 번 실행하고 끝난다.
에피소드 25 검색 알고리즘이 뭐죠?
선형 검색 => 배열의 길이가 길어지면 검색 시간도 길어진다.
이진 검색 => 배열의 크기가 클 때 쓰면 좋은 알고리즘
=> 이진 검색 알고리즘을 사용하고 싶다면 배열은 항상 정렬되어 있어야 한다.
🐣 느낀 점
알고리즘을 풀 때 배열이 클 때가 있었는데 이 상황에서 이진 탐색을 쓰면 좋겠다는 생각을 했다. 또 내가 얕게 알고있던 내용들을 깊게 알게 되니까 알고리즘에 대해 더 쉽게 접근할 수 있을 것 같다.
'IT > IT 5분 잡학사전' 카테고리의 다른 글
[Nomad Coders] IT 5분 잡학사전 #08 (1) | 2023.10.15 |
---|---|
[Nomad Coders] IT 5분 잡학사전 #07 (2) | 2023.10.14 |
[Nomad Coders] IT 5분 잡학사전 #05 (0) | 2023.10.11 |
[Nomad Coders] IT 5분 잡학사전 #04 (1) | 2023.10.10 |
[Nomad coders] IT 5분 잡학사전 #02 (1) | 2023.10.07 |