• TIL(20181113)

    20181113 정렬 알고리즘 퀵 소트 가장 많이 사용되는 방법. 분할정복 방식으로 재귀적으로 호출. 불안정 정렬. 피봇 값을 기준으로 가장 왼쪽부터 left 인덱스는 증가하며 피봇 값보다 큰 값을 보면 홀드. 가장 오른쪽부터 right 인덱스는 감소하며 피봇 값 보다 작은 값을 보면 홀드. 스왑, left 인덱스 1 증가, right 인덱스 1 감소....


  • TIL(20181112)

    20181112 정렬 알고리즘 버블 정렬 붙어있는 원소끼리 비교. 가장 뒷 쪽부터 정렬된다. 매우 비효율적이나 구현이 쉽다. n-1, n-2, … , 1 삽입 정렬 손 안에 있는 카드를 정렬하는 것과 유사하다. 내 앞의 인덱스의 값을 확인하고, 내가 더 작으면 arr[인덱스+1] = arr[인덱스] (큰 값을 한 칸 오른쪽으로 민다.) 내가 내 앞의...


  • 도서 - 코딩을 지탱하는 기술

    코딩을 지탱하는 기술 Prologue 수많은 프로그래밍 언어가 존재한다. 하지만 시간은 제한되어 있다. 비교를 통한 학습 다수의 언어를 비교하는 것. 무엇이 그 언어만의 특징이고, 무엇이 공통점인지 배울 수 있다. 역사를 통한 학습 언어의 발달 과정을 따라가는 것. 탄생과 변화를 배움으로 왜 이런 식으로 동작하고 있는지에 대한 의문을 풀 수 있다. 만드는...


  • 도서 - 객체지향의 사실과 오해 1

    객체지향의 사실과 오해 (~ 52p) 1. 협력하는 객체들의 공동체 시너지를 생각하라. 전체는 부분의 합보다 크다. - 스티븐 코비 협력 속에 사는 객체 객체는 충분히 협력적이어야 한다. 외부의 도움을 무시한 채 모든 것을 스스로 처리하려고 하는 전지전능한 객체(god object)는 내부 복잡도에 의해 자멸한다. 객체는 다른 객체의 명령에 복종하는 것이 아니라 요청에...


  • TIL(20181030)

    20181030 JAVA 인터페이스의 메소드가 하나일 경우, 람다 표현식으로 표현 가능하다.