파이썬으로 병합 정렬 알고리즘 구현하기

이 포스트는 파이썬에서 병합 정렬 알고리즘을 구현한 포스트입니다. 필자의 티스토리 블로그에서도 병합 정렬을 구현한 포스트를 포스팅했지만 여기서는 그 코드를 조금 개량하였습니다. 병합 정렬(Merge sort)이라는 것은 합병 정렬이라고도 하는데, 말 그대로 병합해서 정렬하는 방법입니다. 어떻게 정렬하느냐 하면, 우선 정렬을 수행할 배열의 크기(원소의 개수)가 0 혹은 1이면 정렬이 완료된 것으로 보고 2 이상일 경우 정렬을 하는데 예를 … 더 보기 “파이썬으로 병합 정렬 알고리즘 구현하기”

루비로 퀵 정렬 알고리즘 구현하기

이 포스트는 루비로 퀵 정렬 알고리즘을 구현한 포스트입니다. 필자의 티스토리 블로그에도 퀵 정렬 알고리즘을 구현한 포스트가 있지만 여기서는 조금 개량한 코드를 서술합니다. def quick_sort(a, desc = false , randompivot = true) return a if a.length <= 1 # only 2 or more begin pivot = (a.max + a.min) / 2 rescue pivot = a[randompivot ? … 더 보기 “루비로 퀵 정렬 알고리즘 구현하기”

파이썬으로 퀵 정렬 알고리즘 구현하기 2

파이썬으로 퀵 정렬 알고리즘 구현하기 포스트에서 간단하기 퀵 정렬 알고리즘을 구현하여 보았습니다. 이번에는 같은 알고리즘으로 2차원 배열을 정렬하는 상황을 가정해 봅시다. unsorted = [[5, 7, 3], [3, 4, 5], [4, 2, 6], [2, 6, 4]] for xx in unsorted: print(“%s” % xx) print() for xx in quicksort(unsorted): print(“%s” % xx) 이렇게 2차원 배열을 퀵 정렬 … 더 보기 “파이썬으로 퀵 정렬 알고리즘 구현하기 2”

파이썬으로 퀵 정렬 알고리즘 구현하기

이 포스트에서는 파이썬에서 퀵 정렬 알고리즘을 구현한 포스트입니다. 여기서는 퀵 정렬 알고리즘을 병합 정렬 알고리즘 기반으로 구현하였습니다. 코드를 봅시다. def quicksort(arr, desc = False): if len(arr) <= 1: return arr # only 2 or more try: # numeric array pivot = (max(arr) + min(arr)) / 2 except TypeError: # non-numeric array i = len(arr) // … 더 보기 “파이썬으로 퀵 정렬 알고리즘 구현하기”