Python/sorts/quick_sort_3_partition.py

26 lines
772 B
Python
Raw Normal View History

2018-05-28 10:19:15 +00:00
def quick_sort_3partition(sorting, left, right):
if right <= left:
return
2018-05-28 21:34:21 +00:00
a = i = left
2018-05-28 10:19:15 +00:00
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)
2019-10-05 05:14:13 +00:00
if __name__ == "__main__":
user_input = 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)
2018-05-28 21:34:21 +00:00
print(unsorted)