您的位置:首页 > Web前端 > JavaScript

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

2014-03-22 13:57 183 查看
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
; }

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;

}

})();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐