Исходники и презентации
This commit is contained in:
29
lessons/functions/predicate/main.go
Normal file
29
lessons/functions/predicate/main.go
Normal file
@ -0,0 +1,29 @@
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func Less(lhs, rhs int) bool {
|
||||
return lhs < rhs
|
||||
}
|
||||
|
||||
func Greater(lhs, rhs int) bool {
|
||||
return lhs > rhs
|
||||
}
|
||||
|
||||
func Sort(numbers []int, predicate func(int, int) bool) {
|
||||
for i := 0; i < len(numbers); i++ {
|
||||
for j := i; j > 0 && predicate(numbers[j-1], numbers[j]); j-- {
|
||||
numbers[j-1], numbers[j] = numbers[j], numbers[j-1]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
numbers := []int{1, 2, 5, 4, 3}
|
||||
|
||||
Sort(numbers, Less)
|
||||
fmt.Println(numbers)
|
||||
|
||||
Sort(numbers, Greater)
|
||||
fmt.Println(numbers)
|
||||
}
|
||||
Reference in New Issue
Block a user