mirror of
https://github.com/golang/go
synced 2024-11-18 13:54:59 -07:00
sort: add examples for sort.Search
This adds examples showing the different ways of using sort.Search. Change-Id: Iaa08b4501691f37908317fdcf2e618fbe9f99ade Reviewed-on: https://go-review.googlesource.com/29131 Reviewed-by: Andrew Gerrand <adg@golang.org> Run-TryBot: Andrew Gerrand <adg@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
9658de32c6
commit
79167bbd9c
42
src/sort/example_search_test.go
Normal file
42
src/sort/example_search_test.go
Normal file
@ -0,0 +1,42 @@
|
||||
// Copyright 2016 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package sort_test
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
)
|
||||
|
||||
// This example demonstrates searching a list sorted in ascending order.
|
||||
func ExampleSearch() {
|
||||
a := []int{1, 3, 6, 10, 15, 21, 28, 36, 45, 55}
|
||||
x := 6
|
||||
|
||||
i := sort.Search(len(a), func(i int) bool { return a[i] >= x })
|
||||
if i < len(a) && a[i] == x {
|
||||
fmt.Printf("found %d at index %d in %v\n", x, i, a)
|
||||
} else {
|
||||
fmt.Printf("%d not found in %v\n", x, a)
|
||||
}
|
||||
// Output:
|
||||
// found 6 at index 2 in [1 3 6 10 15 21 28 36 45 55]
|
||||
}
|
||||
|
||||
// This example demonstrates searching a list sorted in descending order.
|
||||
// The approach is the same as searching a list in ascending order,
|
||||
// but with the condition inverted.
|
||||
func ExampleSearch_descendingOrder() {
|
||||
a := []int{55, 45, 36, 28, 21, 15, 10, 6, 3, 1}
|
||||
x := 6
|
||||
|
||||
i := sort.Search(len(a), func(i int) bool { return a[i] <= x })
|
||||
if a[i] == x {
|
||||
fmt.Printf("found %d at index %d in %v\n", x, i, a)
|
||||
} else {
|
||||
fmt.Printf("%d not found in %v\n", x, a)
|
||||
}
|
||||
// Output:
|
||||
// found 6 at index 7 in [55 45 36 28 21 15 10 6 3 1]
|
||||
}
|
Loading…
Reference in New Issue
Block a user