工具函数之取数组的topN和bottomN

来源:互联网 发布:软件出售 编辑:程序博客网 时间:2024/06/07 02:00
    var C = {};    C.shellSort = function(arr) {        var step = 5;        while (step > 0) {            for (var i = step;i<arr.length;i++) {                var j = i-step;                var key = arr[i];                while (j>=0 && key<arr[j]) {                    arr[j+step] = arr[j];                    j-=step;                }                arr[j+step] = key;            }            step = Math.floor(step/2);        }        return arr;    }    C.topN = function(arr,n) {        if(!arr) {            return false;        }        if (!n) {            return        }        return C.creatorN(arr,n,'top');    }    C.bottomN = function(arr,n) {        return C.creatorN(arr,n,'bottom');    }    C.creatorN = function(arr,n,type) {        var result = C.shellSort(arr);        return type==='top' ? result.slice(0,n) : result.slice(arr.length-n);    }
0 0
原创粉丝点击