lin
2025-06-05 ed3dd9d3e7519a82bb871d5eedb24a2fa0c91f47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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 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 7 in [55 45 36 28 21 15 10 6 3 1]
}