Question: 
Write a function to sort a list of elements using pancake sort.


Model's Code:
def flip(arr, k):
    return arr[:k+1][::-1] + arr[k+1:]

def find_max_index(arr, n):
    max_index = 0
    for i in range(1, n):
        if arr[i] > arr[max_index]:
            max_index = i
    return max_index

def pancake_sort(arr):
    n = len(arr)
    for curr_size in range(n, 1, -1):
        max_index = find_max_index(arr, curr_size)
        if max_index != curr_size - 1:
            if max_index != 0:
                arr = flip(arr, max_index)
            arr = flip(arr, curr_size - 1)
    return arr



Sample Correct Code:
def pancake_sort(nums):
    arr_len = len(nums)
    while arr_len > 1:
        mi = nums.index(max(nums[0:arr_len]))
        nums = nums[mi::-1] + nums[mi+1:len(nums)]
        nums = nums[arr_len-1::-1] + nums[arr_len:len(nums)]
        arr_len -= 1
    return nums


Asserts:
assert pancake_sort([15, 79, 25, 38, 69]) == [15, 25, 38, 69, 79]
assert pancake_sort([98, 12, 54, 36, 85]) == [12, 36, 54, 85, 98]
assert pancake_sort([41, 42, 32, 12, 23]) == [12, 23, 32, 41, 42]


Tests:
Test 1 of 3: PASS
Test 2 of 3: PASS
Test 3 of 3: PASS

Test 141 of 974: 102/141 (72.3404255319149%): success