mirror of
https://hub.njuu.cf/TheAlgorithms/Python.git
synced 2023-10-11 13:06:12 +08:00
commit
8727246ed7
31
sorts/quick_sort_3partition.py
Normal file
31
sorts/quick_sort_3partition.py
Normal file
@ -0,0 +1,31 @@
|
||||
from __future__ import print_function
|
||||
|
||||
def quick_sort_3partition(sorting, left, right):
|
||||
if right <= left:
|
||||
return
|
||||
a = i = left
|
||||
b = right
|
||||
pivot = sorting[left]
|
||||
while i <= b:
|
||||
if sorting[i] < pivot:
|
||||
sorting[a], sorting[i] = sorting[i], sorting[a]
|
||||
a += 1
|
||||
i += 1
|
||||
elif sorting[i] > pivot:
|
||||
sorting[b], sorting[i] = sorting[i], sorting[b]
|
||||
b -= 1
|
||||
else:
|
||||
i += 1
|
||||
quick_sort_3partition(sorting, left, a - 1)
|
||||
quick_sort_3partition(sorting, b + 1, right)
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
raw_input # Python 2
|
||||
except NameError:
|
||||
raw_input = input # Python 3
|
||||
|
||||
user_input = raw_input('Enter numbers separated by a comma:\n').strip()
|
||||
unsorted = [ int(item) for item in user_input.split(',') ]
|
||||
quick_sort_3partition(unsorted,0,len(unsorted)-1)
|
||||
print(unsorted)
|
Loading…
Reference in New Issue
Block a user