https://leetcode.com/problems/sort-list/description/
문제설명
연결 리스트가 주어졌을때 퀵 정렬로 정렬하는 방식으로 구현해보았다.
quick sort 방식은
pivot을 마지막에 두고
i, j를 두어서 i는 정렬된 자리를 찾을 역할, j는 순회를 하는 방식으로 사용했다.
이번에는 pivot을 리스트의 가장 맨 앞에 있는 값으로 하고
left와 right 빈 리스트를 만들어 pivot 보다 작으면 left, pivot 보다 크면 right로 데이터를 넣어
재귀함수로 구현 하는 것이다.
def quicksort_2(self,data): if len(data) <= 1: return data pivot = data[0] left, right = list(), list() for index in range(1, len(data)): if pivot > data[index]: left.append(data[index]) else: right.append(data[index]) return self.quicksort_2(left) + [pivot] + self.quicksort_2(right) |
def quicksort_2(self,data):
if len(data) <= 1:
return data
pivot = data[0]
left, right = list(), list()
for index in range(1, len(data)):
if pivot > data[index]:
left.append(data[index])
else:
right.append(data[index])
return self.quicksort_2(left) + [pivot] + self.quicksort_2(right)
'코딩테스트 > LeetCode' 카테고리의 다른 글
[Python][LeetCode] Two Sum II (두 수의 합) (0) | 2023.11.01 |
---|---|
[Python][LeetCode] Search a 2D Matrix II(2D 매트릭스 검색) (0) | 2023.11.01 |
[Python][LeetCode] Insertion Sort List(삽입 정렬 리스트) (0) | 2023.10.28 |
[Python] [LeetCode] Balanced Binary Tree (균형 이진 트리) (0) | 2023.10.26 |
[Python][LeetCode] Invert Tree (0) | 2023.10.25 |