# 미사용
그림으로 알아보는 버킷 정렬 (bucket sort)
버킷 정렬 해싱과 매우 비슷합니다. 적당한 기준으로 나누고 각 부분들을 또 다른 알고리즘으로 정렬한 뒤 순서에 맞게 합칩니다. 시간 복잡도 혼자서는 사용되지 않고 다른 알고리즘과 함께 사용되기 때문에, 같이 사용되는 다른 알고리즘에 의하여 시간 복잡도가 결정됩니다. Worst Case는 모든 데이터가 하나의 버킷에 들어가는 것이고, Best Case는 모두 균등하게 분배되는 것입니다. 정렬 예제 [99, 57, 14, 23, 55, 77]을 정렬해보겠습니다. 먼저 적당히 여러개의 버킷으로 나누고 적당히 버킷의 룰을 결정합니다. 룰은 정말로 적당히 정하는데 해싱으로 나눌수도 있고 범위일수도 있습니다. 여기서는 범위를 기반으로 3개의 버킷으로 나눠서 [14, 23], [57, 55], [99, 77]로 분배..
2018. 10. 1. 02:15
# 미사용
그림으로 알아보는 병합 정렬 (merge sort)
병합 정렬병합정렬이란, 이미 정렬된 두 개의 배열에 대해 합쳐진 정렬된 배열을 얻는 방법이다. 결과가 들어갈 새로운 배열을 선언하고,두 배열의 앞쪽을 비교하면서 결과 배열의 앞쪽부터 채워 넣으면,쉽게 합쳐진 배열을 얻을 수 있다. 정렬되지 않은 상태에서의 병합정렬정렬되지 않은 배열 arr[]에 대하여,arr[]을 균등하게 반으로 나눈 배열을 A[], B[]라고 하자. 여기서 2가지 선택지가 있다.A[], B[]를 다른 알고리즘으로 정렬하고 병합정렬로 합친다.A[], B[]에 다시 위의 작업을 반복한다. 첫 번째) A[], B[]를 퀵 정렬같은 다른 알고리즘으로 정렬하면,두 개의 배열은 정렬된 상태가 되기 때문에,이 두 배열을 병합정렬로 합치면 정렬된 arr[]이 완성된다. 두 번째)다시 A[]와 B[]를..
2018. 9. 30. 18:13