Skip to content

Instantly share code, notes, and snippets.

@thinkphp
Created September 1, 2017 10:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thinkphp/14cefd0ba27ef52e238f02a7c7abeeea to your computer and use it in GitHub Desktop.
Save thinkphp/14cefd0ba27ef52e238f02a7c7abeeea to your computer and use it in GitHub Desktop.
package main
import "fmt"
func findMax(vec []int, index int) int {
var iMax int
var i int
iMax = 0
for i = 1; i < index; i+=1 {
if vec[i] > vec[iMax] {
iMax = i
}
}
return iMax
}
func _flip(vec []int, index int) {
var start int
start = 0
for start < index {
vec[start],vec[index] = vec[index],vec[start]
start+=1
index-=1
}
}
func pancake(vec []int) {
var curr int
var iMax int
size := len(vec)
for curr = size; curr > 1; curr-=1 {
iMax = findMax(vec, curr)
_flip(vec, iMax)
_flip(vec, curr-1)
}
}
func main() {
arr := []int{9,8,7,6,5,4,3,2,1,0}
fmt.Println(arr)
pancake(arr)
fmt.Println(arr)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment