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
}
|