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;
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;
}
})();