매번 보는 지겨운 정렬 알고리즘 실제 개발에 있어서 라이브러리를 잘 사용하여 짜기만 하면되는데.... 라는 생각을 떠나 언젠가 자기만의 커스텀 정렬을 위하여 이번 기회에 정리 합니다.목표 1, 정렬 알고리즘 종류와 방법을 이해 2. 정렬 알고리즘의 복잡도 이해 3. 고급정렬 알고리즘 용어 1. 레코드(record) : 정렬할 각 원소 2. 필드(field) : 레코드에 포함되어 있는 정보 3. 키 : 레코드간의 순서를 나타내는 자 4. 안전성(stability) : 상대적인 위치가 정렬후에도 유지가 될 것 비교에 의한 정렬 1. 선택정렬 O(N^2) 불안정 2. 버블정렬 O(N^2) 안정적 3. 삽입정렬 O(N^2) 안정적 4. 쉘정렬 O(N^3/2) 안정적 5. 히프정렬 O(NlogN) 불안정적 분포에..
먼저 패러다임이란? - 패러다임은 위키에 따르면 '어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계' 라고 한다. 허나 우리가 살펴볼 내용은 프로그래밍 패러다임이다. 그러면 프로그래밍 패러다임이란? - 프로그래밍 패러다임은 프로그래밍을 보는 시각인데 이는 "도구에 따라 시각이 달라진다" 라는 것을 중점으로 해석을 한다.- 즉 특정 패러다임을 지원하는 언어에 익숙할수록 문제를 이해하는 사고방식도 그 패러다임에 치우치게 된다 라는게 우리가 염두 하며 살펴봐야할 점이다.- 우리는 이를 크게 4가지로 정의 할 수 있다.1. 명령형 패러다임2. 객체지향 패러다임3. 함수형 패러다임4. 논리형 패러다임 1. 명령형 패러다임 (Imperative Programming)- 컴퓨터가..