Skip to content

Commit 1740983

Browse files
authored
Create 3.py
1 parent 152655e commit 1740983

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

6/3.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
array = [5, 7, 9, 0, 3, 1, 6, 2, 4, 8]
2+
3+
def quick_sort(array, start, end):
4+
if start >= end: # 원소가 1개인 경우 종료
5+
return
6+
pivot = start # 피벗은 첫 번째 원소
7+
left = start + 1
8+
right = end
9+
while(left <= right):
10+
# 피벗보다 큰 데이터를 찾을 때까지 반복
11+
while(left <= end and array[left] <= array[pivot]):
12+
left += 1
13+
# 피벗보다 작은 데이터를 찾을 때까지 반복
14+
while(right > start and array[right] >= array[pivot]):
15+
right -= 1
16+
if(left > right): # 엇갈렸다면 작은 데이터와 피벗을 교체
17+
array[right], array[pivot] = array[pivot], array[right]
18+
else: # 엇갈리지 않았다면 작은 데이터와 큰 데이터를 교체
19+
array[left], array[right] = array[right], array[left]
20+
# 분할 이후 왼쪽 부분과 오른쪽 부분에서 각각 정렬 수행
21+
quick_sort(array, start, right - 1)
22+
quick_sort(array, right + 1, end)
23+
24+
quick_sort(array, 0, len(array) - 1)
25+
print(array)

0 commit comments

Comments
 (0)