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
// @Title: 煎饼排序 (Pancake Sorting)
// @Author: 15816537946@163.com
// @Date: 2022-02-19 12:40:23
// @Runtime: 0 ms
// @Memory: 2.2 MB
func pancakeSort(arr []int) (ans []int) {
    for n := len(arr); n > 1; n-- {
        index := 0
        for i, v := range arr[:n] {
            if v > arr[index] {
                index = i
            }
        }
        if index == n-1 {
            continue
        }
        for i, m := 0, index; i < (m+1)/2; i++ {
            arr[i], arr[m-i] = arr[m-i], arr[i]
        }
        for i := 0; i < n/2; i++ {
            arr[i], arr[n-1-i] = arr[n-1-i], arr[i]
        }
        ans = append(ans, index+1, n)
    }
    return
}