콘텐츠로 건너뛰기
Home » 정렬

정렬

병합정렬

병합정렬은 기초적인 정렬 알고리듬 중에서 널리 알려진 알고리듬 중 하나이며, 대표적인 분정복 알고리듬의 예인 동시에 재귀 알고리듬의 좋은 예이다. 이름에 ‘병합'(merge)이 들어가는 이유는 배열을 2개 혹은 그 이상의 작은 조각으로 나누고 각각의 조각을 정렬한 다음, 각 조각의 앞에서부터 가장 작은 값을 순서대로 골라서 정렬된 결과를 생성하기 때문이다.

원래의 배열을 쪼갠 각각의 조각 역시 똑같은 병합 정렬을 이용해서 정렬하는 재귀적인 동작을 수행한다. 재귀적 알고리듬의 수행 과정을 복잡하고 어렵게 여기는 사람들이 있는데, 입력과 결과에 집중하는 방식으로 바라보면 오히려 더욱 명료하고 간단하다는 것을 알 수 있다.

더 보기 »병합정렬

버블 정렬 (Bubble Sort)

버블정렬은 정렬 중에서 가장 기본적이고 쉬운 알고리듬이다. 버블정렬은 배열의 앞에서부터 큰 원소를 뒤쪽으로 보내는 작업을 반복적으로 시행하여 배열 전체를 정렬한다. 이 때 큰 값들이 물속에서 거품이 떠오르는 것처럼 움직이기 때문에 ‘버블’이라는 이름이 붙었다.

간단한 예를 통해서 버블 정렬이 어떻게 작동하는지 살펴보자. 아래와 같은 배열이 있다고 가정하자.

더 보기 »버블 정렬 (Bubble Sort)

[Cocoa] 배열의 원소를 정렬하는 방법 – NSSortDescriptor

정렬 디스크립터

원본 : https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/SortDescriptors/Articles/Creating.html#//apple_ref/doc/uid/20001845-BAJEAIEE

정렬 디스크립터(Sort Decriptor)는 집합 객체의 원소가 되는 객체들을 비교하는 규칙을 묘사하는 객체이다. NSSortDescriptor의 인스터는 슬 만들어서 어떤 키를 기준으로 정렬할 것인지, 올림차순으로 정렬할 것인지 내림차순으로 정렬할 것인지를 지정할 수 있다. 또한 기본 비교 메소드인 compare:외에 다른 비교 메소드를 사용하도록 지정할 수 있다. 더 보기 »[Cocoa] 배열의 원소를 정렬하는 방법 – NSSortDescriptor