Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,34 @@
|
|||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
list := pancake{31, 41, 59, 26, 53, 58, 97, 93, 23, 84}
|
||||
fmt.Println("unsorted:", list)
|
||||
|
||||
list.sort()
|
||||
fmt.Println("sorted! ", list)
|
||||
}
|
||||
|
||||
type pancake []int
|
||||
|
||||
func (a pancake) sort() {
|
||||
for uns := len(a) - 1; uns > 0; uns-- {
|
||||
// find largest in unsorted range
|
||||
lx, lg := 0, a[0]
|
||||
for i := 1; i <= uns; i++ {
|
||||
if a[i] > lg {
|
||||
lx, lg = i, a[i]
|
||||
}
|
||||
}
|
||||
// move to final position in two flips
|
||||
a.flip(lx)
|
||||
a.flip(uns)
|
||||
}
|
||||
}
|
||||
|
||||
func (a pancake) flip(r int) {
|
||||
for l := 0; l < r; l, r = l+1, r-1 {
|
||||
a[l], a[r] = a[r], a[l]
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue