코딩테스트/LeetCode
[Python][leetCode] List Sort(리스트 정렬)
jungmin.park
2023. 10. 30. 19:12
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)