# Binary search

**URL:** https://talk.remobjects.com/t/binary-search/6765
**Category:** Snippets
**Tags:** cocoa, elements, csharp, java, net
**Created:** [August 28, 2015, 12:33pm UTC](https://talk.remobjects.com/t/binary-search/6765 "2015-08-28T12:33:03Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![ck](https://talk.remobjects.com/user_avatar/talk.remobjects.com/ck/32/8740_2.png) [@ck](https://talk.remobjects.com/u/ck)
#### Post date: [August 28, 2015, 12:33pm UTC](https://talk.remobjects.com/t/binary-search/6765/1 "2015-08-28T12:33:03Z")

</div>

Shows how to do a binary search on an array, can be changed to work on any presorted list structure

```auto
static int BinarySearch(int[] data, int val)
        {       
            int lo = 0;
            int hi = data.Length - 1;
            while (hi >= lo)
            {
                var cur = lo + ((hi - lo) >> 1);

                var el = data[cur];
                if (el == val)
                    return cur;
                if (el < val)
                    lo = cur + 1;
                else
                    hi = cur - 1;

            }
            return -1;
        }

```
