티스토리 뷰

IT/Python

퀵 정렬 / 병합 정렬

yj95 2023. 9. 12. 09:38
반응형

퀵 정렬

def quick_sort(arr):
	if len(arr) <= 1: return arr
	pivot = arr.pop()
	left, right = [], []
	for x in arr:
		if x < pivot:
			left.append(x)
		else:
			right.append(x)
	return quick_sort(left) + [pivot] + quick_sort(right)

병합 정렬

def merge_sort(arr):
	if len(arr) <= 1: return arr
	center = len(arr) // 2
	left, right = merge(arr[:center]), merge(arr[center:])
	result = []
	l = r = 0
	while l < len(left) and r < len(right):
		if left[l] < right[r]:
			result.append(left[l])
			l += 1
		else:
			result.append(right[r])
			right += 1
	return result + left[l:] + right[r:]

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함