Sha256: 2edb892e55b3b7c3244c50678aa2e4206b6749ec2f46f677396fdf1fba8f3da9

Contents?: true

Size: 755 Bytes

Versions: 104

Compression:

Stored size: 755 Bytes

Contents

package binarysearch

import "fmt"

func SearchInts(s []int, k int) (i int) {
	for j := len(s); i < j; {
		if h := (i + j) / 2; s[h] < k {
			i = h + 1
		} else {
			j = h
		}
	}
	return
}

func Message(s []int, k int) string {
	x := SearchInts(s, k)
	switch {
	case x == len(s):
		if x == 0 {
			return "slice has no values"
		}
		return fmt.Sprintf("%d > all %d values", k, x)
	case s[x] != k:
		if x == 0 {
			return fmt.Sprintf("%d < all values", k)
		}
		return fmt.Sprintf("%d > %d at index %d, < %d at index %d",
			k, s[x-1], x-1, s[x], x)
	}
	switch x {
	case 0:
		return fmt.Sprintf("%d found at beginning of slice", k)
	case len(s) - 1:
		return fmt.Sprintf("%d found at end of slice", k)
	}
	return fmt.Sprintf("%d found at index %d", k, x)
}

Version data entries

104 entries across 104 versions & 1 rubygems

Version Path
trackler-2.0.6.28 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.27 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.26 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.25 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.24 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.23 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.22 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.21 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.20 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.19 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.18 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.17 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.16 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.15 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.14 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.13 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.12 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.11 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.10 tracks/go/exercises/binary-search/example.go
trackler-2.0.6.9 tracks/go/exercises/binary-search/example.go