2018-01-29 Richard Biener <rguenther@suse.de>
[official-gcc.git] / libgo / go / sort / example_search_test.go
blob6928f0f092db415f260e6590404a82f1e8313f4e
1 // Copyright 2016 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 package sort_test
7 import (
8 "fmt"
9 "sort"
12 // This example demonstrates searching a list sorted in ascending order.
13 func ExampleSearch() {
14 a := []int{1, 3, 6, 10, 15, 21, 28, 36, 45, 55}
15 x := 6
17 i := sort.Search(len(a), func(i int) bool { return a[i] >= x })
18 if i < len(a) && a[i] == x {
19 fmt.Printf("found %d at index %d in %v\n", x, i, a)
20 } else {
21 fmt.Printf("%d not found in %v\n", x, a)
23 // Output:
24 // found 6 at index 2 in [1 3 6 10 15 21 28 36 45 55]
27 // This example demonstrates searching a list sorted in descending order.
28 // The approach is the same as searching a list in ascending order,
29 // but with the condition inverted.
30 func ExampleSearch_descendingOrder() {
31 a := []int{55, 45, 36, 28, 21, 15, 10, 6, 3, 1}
32 x := 6
34 i := sort.Search(len(a), func(i int) bool { return a[i] <= x })
35 if i < len(a) && a[i] == x {
36 fmt.Printf("found %d at index %d in %v\n", x, i, a)
37 } else {
38 fmt.Printf("%d not found in %v\n", x, a)
40 // Output:
41 // found 6 at index 7 in [55 45 36 28 21 15 10 6 3 1]