반응형
파이썬 Quick Sort로 오름차순으로 정렬하는 방식입니다.
시간복잡도 : O(n^2) - Worst Case 일 때 이지만,
일반적으로는 가장 빠른 정렬으로 시간복잡도를 O(nlogn) 으로 봅니다.
def quickSort(A, first, last):
left = first + 1
right = last
if first >= last:
return
pivot = A[first]
while left <= right:
while left <= last and A[left] < pivot:
left += 1
while right > first and A[right] >= pivot:
right -= 1
if left <= right:
A[left], A[right] = A[right], A[left]
left += 1
right -= 1
A[right], A[first] = A[first], A[right]
quickSort(A, first, right-1)
quickSort(A, left, last)
if __name__ == '__main__':
A = [4, 1, 5, 8, 6, 2, 3, 7, 10]
quickSort(A, 0, len(A)-1)
print A
반응형
'Programming > Python' 카테고리의 다른 글
Sorting(4) Selection Sort(선택 정렬) (0) | 2016.10.27 |
---|---|
Sorting(3) Insertion Sort(삽입 정렬) (0) | 2016.10.27 |
Sorting(1) Bubble Sort(버블 정렬) (0) | 2016.10.27 |
Python2 설치 (0) | 2016.05.14 |
파이썬 활용 - Web Page 내의 Image Object의 Path 추출 (0) | 2016.04.29 |
WRITTEN BY
,