现在的位置: 首页 > 综合 > 正文

js实现查找有序序列下的元素

2014年11月03日 ⁄ 综合 ⁄ 共 698字 ⁄ 字号 评论关闭

1.插入后返回数据
function sort_arr(arr_sort, n){
    for(var i=arr_sort.length-1; i>=0 ;i--){
      if(  n == arr_sort[i] ){ return i};

      if( n < arr_sort[i]){
        arr_sort[i+1] = arr_sort[i];
      }else{
        break;
      }
    }
    arr_sort[i+1] = n ;
    return arr_sort;

  }

2可以用cache来缓存内容,返回一个index,但是arr的变量属于局部?这个如何是好

var find_sort_arr = (function(){
    var cache = {};

    //utils
    function inser(arr, n){
      for(var i=arr.length-1; i>=0 ;i--){

        if( n < arr[i]){
          arr[i+1] = arr[i];
        }else{
          break;
        }
      }
      arr[i+1] = n ;
      return i+1;
    }


    return function(arr, n){
      var index;
      if( n in cache ) { return cache[n]; } 

      if( index = String.prototype.indexOf.call(arr, n) != -1){
        index = Math.floor( index/2 );

        cache[ arr[index]+""] = index;
      }else{
        //insert new element into sorted array
        index = inser(arr, n);
        cache[ arr[index] ] = index;
      }
    
      return index;

    }

  })();

抱歉!评论已关闭.