Nodejs Array Search Binary binarysearch(i)

Here you can find the source of binarysearch(i)

Method Source Code

/**//from w  w  w. j  av  a 2 s . com
 * Project:   geoipd
 * User:      av4me
 * Main Repo: github.com/av4me/geoipd
 * Date:      04/05/2013
 * License:   MIT
 */

// inspiration: binarymax & James Khoury @ http://codereview.stackexchange.com/questions/1480/better-more-efficient-way-of-writing-this-javascript-binary-search
Array.prototype.binarysearch = function (i) {
    var l = 0, u = this.length,  m;
    while ( l <= u ) {
        // m = Math.floor((l+u)/2);
        m = ((l+u) >> 1);
        if ( i > this[m].i ) {
            l = m+1;
        } else {
            u = (i == this[m]) ? -2 : m - 1;
        }
    }
    return (u == -2) ? m : -1;
};

Related

  1. binarySearch(value)
    Array.prototype.binarySearch = function(value) {
        'use strict';
        if(!value){
            return null;
        var left = 0,
            right = this.length-1,
            find = false,
            middle = null;
    ...
    
  2. binarySearch(value)
    Array.prototype.binarySearch = function(value){
        var items = this;
        console.log(items.length);
        var startIndex  = 0;
        var stopIndex = items.length - 1;
        var middle = Math.floor((stopIndex + startIndex)/2);
        while(items[middle] != value && startIndex < stopIndex){
            if (value < items[middle]){
                stopIndex = middle - 1;
    ...
    
  3. binarySearchbinaryIndexOf;
    function binaryIndexOf(searchElement) {
        'use strict';
        var minIndex = 0;
        var maxIndex = this.length - 1;
        var currentIndex = -1;
        var currentElement;
        while (minIndex <= maxIndex) {
            currentIndex = (minIndex + maxIndex) / 2 | 0;
            currentElement = this[currentIndex];
    ...
    
  4. binarySearchbinarySearch(val, from, to)
    Array.prototype.binarySearch = function binarySearch(val, from, to){
        if (from === undefined) {
            from = 0;
        if (to === undefined) {
            to = this.length-1;
        var mid = Math.ceil((from+to)/2),
            midVal = this[mid];
    ...
    
  5. binary_search(val, left, right)
    Array.prototype.binary_search = function(val, left, right) {
        if (typeof left === 'undefined') left = 0;
        if (typeof right === 'undefined') right = this.length - 1;
        if (left > right) return null;
        var mid = (left + right) >> 1;
        if (val == this[mid]) {
            return mid;
        } else if (val > this[mid]) {
            return this.binary_search(val, mid + 1, right);
    ...
    
  6. bsearch(target)
    Array.prototype.bsearch = function (target) {
      var half = parseInt(this.length / 2);
      if (target === this[half]) {
        return half;
      if (target > this[half]) {
        return half + this.slice(half,this.length).bsearch(target);
      } else {
        return this.slice(0, half).bsearch(target);
    ...