Golang program for implementation of Pancake Sort
Pancake sorting is the colloquial term for the mathematical problem of sorting a disordered stack of pancakes in order of size when a spatula can be inserted at any point in the stack and used to flip all pancakes above it. A pancake number is the maximum number of flips required for a given number of pancakes. Here is source code of the Go Program to implement Pancake Sorting Algorithm.
Example
package main
import "fmt"
func main() {
list := data{28, 11, 59, -26, 503, 158, 997, 193, -23, 44}
fmt.Println("\n--- Unsorted --- \n\n", list)
list.pancakesort()
fmt.Println("\n--- Sorted ---\n\n", list, "\n")
}
type data []int32
func (dataList data) pancakesort() {
for uns := len(dataList) - 1; uns > 0; uns-- {
// find largest in unsorted range
lx, lg := 0, dataList[0]
for i := 1; i <= uns; i++ {
if dataList[i] > lg {
lx, lg = i, dataList[i]
}
}
// move to final position in two flips
dataList.flip(lx)
dataList.flip(uns)
}
}
func (dataList data) flip(r int) {
for l := 0; l < r; l, r = l+1, r-1 {
dataList[l], dataList[r] = dataList[r], dataList[l]
}
}
Output
--- Unsorted ---
[28 11 59 -26 503 158 997 193 -23 44]
--- Sorted ---
[-26 -23 11 28 44 59 158 193 503 997]
Most Helpful This Week
Golang program for implementation of Tower of Hanoi Algorithm
Golang program for implementation of Rabin-Karp
Golang program for implementation of Binary Search
Golang program to generate number of slices permutations of number entered by user
Golang program for implementation of Insertion Sort
Golang program for implementation of Median of Medians
Golang program for implementation LZW Data Compression and Uncompression
Golang program for implementation of Selection Sort
Golang program for implementation of Interpolation Search
Golang program for implementation of Comb Sort