forked from TheAlgorithms/Python
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpancake_sort.py
More file actions
Latest commit
39 lines (35 loc) · 1.07 KB
/
Copy pathpancake_sort.py
File metadata and controls
39 lines (35 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
"""
This is a pure Python implementation of the pancake sort algorithm
For doctests run following command:
python3 -m doctest -v pancake_sort.py
or
python -m doctest -v pancake_sort.py
For manual testing run:
python pancake_sort.py
"""
defpancake_sort(arr):
"""Sort Array with Pancake Sort.
:param arr: Collection containing comparable items
:return: Collection ordered in ascending order of items
Examples:
>>> pancake_sort([0, 5, 3, 2, 2])
[0, 2, 2, 3, 5]
>>> pancake_sort([])
[]
>>> pancake_sort([-2, -5, -45])
[-45, -5, -2]
"""
cur=len(arr)
whilecur>1:
# Find the maximum number in arr
mi=arr.index(max(arr[0:cur]))
# Reverse from 0 to mi
arr=arr[mi::-1] +arr[mi+1 : len(arr)]
# Reverse whole list
arr=arr[cur-1 :: -1] +arr[cur : len(arr)]
cur-=1
returnarr
if__name__=="__main__":
user_input=input("Enter numbers separated by a comma:\n").strip()
unsorted= [int(item) foriteminuser_input.split(",")]
print(pancake_sort(unsorted))