본문 바로가기
[DSA] Search & Sorting Algorithm Tutorial [DSA] Search & Sorting Algorithm Tutorial https://www.tutorialspoint.com/data_structures_algorithms/binary_search_algorithm.htm - Linear Search 는 O(n) 의 complexity 를 갖는다. - Binary Search 는 O(log n) 의 complexity 를 갖는다. Divide and Conquer 방식이 기본이다. Binary Search 가 작동하려면 sorting 이 되어 있어야 한다. Mid position 에 있는 녀석이 찾으려는 녀석인지 확인한다. 찾으려는 녀석이 그 녀석보다 작으면 아래쪽을 다시 binary search 하고, 크면 위쪽을 다시 binary search .. 2019. 1. 13.
[실용주의 프로그래머] 알고리즘의 속도 [실용주의 프로그래머] 알고리즘의 속도 -실용주의 프로그래머가 거의 날마다 사용하는 추정이 있다.알고리즘이 사용하는 자원, 곧 시간, 프로세서, 메모리 등등을 추정하는 것이 그것이다.대문자 O 표기법(big O notation)이라고 불리는 근사값을 기록하는 방식을 이용하면 답을 찾을 수 있는 경우가 많다. -일반적으로 입력의 크기는 알고리즘에 영향을 준다. 입력의 크기가 클수록, 알고리즘의 수행시간이 길어지거나 사용하는 메모리 양이 늘어난다. -알고리즘과 시간의 상관관계가 선형적이라면(늘어나는 시간이 입력값과 비례한다면) 큰 상관이 없다.그러나 알고리즘은 대개 선형적이지 않다.선형보다 더 적은 경우도 있지만, 훨씬 많은 경우도 많다. -우리는 반복문이나 재귀 호출을 담고 있는 코드를 작성할때면 언제나 .. 2018. 11. 4.
[실용주의 프로그래머] 단지 뷰일 뿐이야 [실용주의 프로그래머] 단지 뷰일 뿐이야 -우리는 전부터 프로그램을 커다란 덩어리 하나로 짜지 말고, “나눠서 정복하기(divide and conquer)” 방법을 써서 여러 모듈로 나누어 짜야 한다고 배웠다.모듈마다 자기만의 책임이 있다.사실, “잘 정의된 단 하나의 책임만 가지는 것”이라는 말이야말로 모듈(또는 클래스)에 대한 좋은 정의가 된다. -이벤트를 이용하면 어떤 객체의 상태 변화를 이에 관심을 가질 다른 객체들에게 알릴 수 있다.이벤트를 이렇게 이용하면 객체들 사이의 결합을 최소화할 수 있다. 출판/구독 -모든 이벤트를 루틴 하나에 몰아넣는 일은 나쁘다.하나의 루틴이 여러 객체들 사이의 상호작용에 대한 상세한 지식을 지니게 된다.그리고 결합도도 증가된다.그외에도 DRY 원칙 어김, 직교성 어.. 2018. 11. 1.
반응형