본문 바로가기

전체 글

(82)
알고리즘의 속도 표기법 Big O 이 글은 전 글과 같이 유튜브 영상을 보고 작성한 글이다. 이번에는 어떻게 알고리즘의 속도를 전문적이고 CS적인 표현으로 나타내는지 공부해봤다. 알고리즘의 속도는 단순히 시간으로 표현하지 않는다. 그 이유는 각 하드웨어의 성능이 달라 실행 속도에 차이가 있을 것이기 때문이다. 따라서, 알고리즘의 속도는 완료까지 걸리는 절차의 수로 결정된다. 이전 글의 선형 검색을 예를 들어 보면, input size = N일 때 선형 검색 알고리즘은 N steps가 요구된다. 이 때, 선형 검색의 시간 복잡도는 O(N)을 갖는다고 한다. 이러한 표기 방식을 Big O notation이라고 한다. 또 다른 예를 들어 아래와 같은 파이썬 코드가 있다고 가정할 때, def print_first(arr): print(arr[0..
이진 검색(Binary Search) vs 선형 검색(Linear Search) 오늘은 배열에서의 2가지 검색(Search) 알고리즘을 비교해보는 영상을 보고 작성하였다. 알고리즘은 어떠한 작업을 수행하기 위해 우리가 따라야하는 절차, 스텝들이다. 이번에 다루는 알고리즘과 다른 알고리즘 그룹으로는 정렬(Sorting) 알고리즘이 있다. 선형 알고리즘(Linear Search Algorithm) 이 알고리즘은 검색을 하기위한 가장 단순한 단계일 수 있다. 이 때, 최악의 시나리오가 두 가지 있다. 먼저, 찾는 아이템이 배열의 끝에 존재할 때이다. 이 상황에는 배열의 길이만큼 수행해야할 스텝이 길어진다. 또 다른 하나는 배열에 찾는 아이템이 없는 경우이다. 그리고 위와 같은 경우들을 선형 시간복잡도(Linear Time Complexity)라고 한다. Input이 커지면 소요되는 시간이..
배열의 기초개념(Array) 공부 Array 배열 기초개념? 10분안에 정리해줌! 이라는 영상을 보고 내용을 정리한 글이다. (영상은 최하단에 첨부) 배열의 무엇을 공부하는가? 가장 기본적인 데이터 구조이다. 이 영상에서 가장 먼저 소개하는 것은 시간복잡도(Time Complexity)이다. 배열의 Read, Search, Add, Delete의 4 Operation에 대한 시간복잡도를 공부한다. 먼저, 시간 복잡도(Time Complexity)란? 자료 구조의 오퍼레이션 혹은 알고리즘이 어느 정도의 속도인지 측정하는 방법이다. 얼마나 많은 단계(step)이 있는지를 갖고 측정한다. 메모리 관점에서의 배열 메모리는 먼저 2가지로 나뉜다. 휘발성(Volatile), 비휘발성(Non-Volatile) 메모리. 프로그램이 실행되고 변수를 생성..

"); wcs_do();