개발자/IT관련 서적 정리 2

[누구나 자료구조와 알고리즘] 3장. Big O 표기법

빅 오란? 시간 복잡도를 쉽게 소통할 목적으로 자료 구조와 알고리즘의 효율성을 간결하고 일관된 언어로 설명하기 위해 수학적 개념을 차용한 것. 위 개념을 형식화한 표현을 Big O 표기법이라 부른다. 빅 오 표기법을 사용해 주어진 알고리즘의 효율성을 쉽게 분류하고 이해시킬 수 있다. O(N)은 알고리즘에 N단계가 필요한 것 => "선형 검색"이 대표적 (linear time 선형 시간을 갖는 알고리즘) O(1)은 배열에 원소가 몇개든 한 단계에 해결되는 것 => "가장 빠른" 알고리즘 유형으로 분류 됨 => 배열의 검색 => 상수시간(constant time)을 갖는 알고리즘이라고도 표현 Big O의 본질 빅오의 진정한 의미는 데이터가 늘어날 때 알고리즘의 성능이 어떻게 바뀌는지를 뜻한다. O(1)의 경..

[누구나 자료구조와 알고리즘] 1~2장_자료구조와 알고리즘이 중요한 이유

읽게된 계기 비전공자이다보니 CS에 대한 기본지식이 부족했다. 최근 프로그래머스 문제를 많이 풀다보니 자료구조와 알고리즘이 절실하게 필요했다. 처음이므로, 쉽게 풀어쓴 책이어야 했다. 1장 자료구조가 중요한 까닭 자료구조 자료구조란 데이터를 조직하는 방법이다. => 데이터 조직을 어떻게 하는가에 따라 "코드의 실행 속도"에 미치는 영향이 매우 크기 때문에 자료구조를 이해해서 효율적인 코드를 작성할 수 있어야 한다. 연산 읽기 : 자료 구조내 특정 위치를 찾아보는 것 검색 : 자료 구조내에서 특정 값을 찾는 것 삽입 : 자료 구조에 새로운 값을 추가하는 것 삭제 : 자료 구조에서 값을 제거 하는 것 속도 측정 시간이 아닌 얼마나 많은 "단계"가 필요한지를 측정 Why? 하드웨어마다 성능이 천차만별이기 때문..