requires -gcflags="-B" to be effective
(items []int, elem int)
| 23 | |
| 24 | // requires -gcflags="-B" to be effective |
| 25 | func SearchSentinel(items []int, elem int) (i int) { |
| 26 | var last int |
| 27 | last, items[len(items)-1] = items[len(items)-1], elem |
| 28 | for items[i] != elem { |
| 29 | i++ |
| 30 | } |
| 31 | if i+1 == len(items) && last != elem { |
| 32 | i++ |
| 33 | } |
| 34 | items[len(items)-1] = last |
| 35 | return i |
| 36 | } |
| 37 | |
| 38 | func SearchUnsafe(items []int, elem int) (i int) { |
| 39 | var last int |
no outgoing calls