RosettaCodeData/Task/Order-by-pair-comparisons/Go/order-by-pair-comparisons-2.go
2023-07-01 13:44:08 -04:00

27 lines
610 B
Go

package main
import (
"fmt"
"sort"
"strings"
)
var count int = 0
type sortable []string
func (s sortable) Len() int { return len(s) }
func (s sortable) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
func (s sortable) Less(i, j int) bool {
s1, s2 := s[i], s[j]
count++
fmt.Printf("(%d) Is %s < %s? ", count, s1, s2)
var response string
_, err := fmt.Scanln(&response)
return err == nil && strings.HasPrefix(response, "y")
}
func main() {
items := sortable{"violet", "red", "green", "indigo", "blue", "yellow", "orange"}
sort.Sort(items)
fmt.Println(items)
}