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.
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}
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
)
21 fmt
.Printf("%d not found in %v\n", x
, a
)
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}
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
)
38 fmt
.Printf("%d not found in %v\n", x
, a
)
41 // found 6 at index 7 in [55 45 36 28 21 15 10 6 3 1]
44 // This example demonstrates searching for float64 in a list sorted in ascending order.
45 func ExampleSearchFloat64s() {
46 a
:= []float64{1.0, 2.0, 3.3, 4.6, 6.1, 7.2, 8.0}
49 i
:= sort
.SearchFloat64s(a
, x
)
50 fmt
.Printf("found %g at index %d in %v\n", x
, i
, a
)
53 i
= sort
.SearchFloat64s(a
, x
)
54 fmt
.Printf("%g not found, can be inserted at index %d in %v\n", x
, i
, a
)
56 // found 2 at index 1 in [1 2 3.3 4.6 6.1 7.2 8]
57 // 0.5 not found, can be inserted at index 0 in [1 2 3.3 4.6 6.1 7.2 8]
60 // This example demonstrates searching for int in a list sorted in ascending order.
61 func ExampleSearchInts() {
62 a
:= []int{1, 2, 3, 4, 6, 7, 8}
65 i
:= sort
.SearchInts(a
, x
)
66 fmt
.Printf("found %d at index %d in %v\n", x
, i
, a
)
69 i
= sort
.SearchInts(a
, x
)
70 fmt
.Printf("%d not found, can be inserted at index %d in %v\n", x
, i
, a
)
72 // found 2 at index 1 in [1 2 3 4 6 7 8]
73 // 5 not found, can be inserted at index 4 in [1 2 3 4 6 7 8]