美文网首页
常用数组去重

常用数组去重

作者: black白先森 | 来源:发表于2016-10-06 15:28 被阅读14次
    1. 数组去重方式
    //数组去重
    function unique(arr){
        var ret=[];
        for (var i = 0; i < arr.length; i++) {
            var tmp=arr[i];
            if(ret.indexOf(tmp)===-1){
                ret.push(tmp);
            }
        }
    }
    Array.prototype.unique1 = function () {
              var n = []; //一个新的临时数组
              for (var i = 0; i < this.length; i++) //遍历当前数组
              {
                //如果当前数组的第i已经保存进了临时数组,那么跳过,
                //否则把当前项push到临时数组里面
                if (n.indexOf(this[i]) == -1) n.push(this[i]);
              }
              return n;
            }
    Array.prototype.unique2 = function()
            {
                var n = {},r=[]; //n为hash表,r为临时数组
                for(var i = 0; i < this.length; i++) //遍历当前数组
                {
                    if (!n[this[i]]) //如果hash表中没有当前项
                    {
                        n[this[i]] = true; //存入hash表
                        r.push(this[i]); //把当前数组的当前项push到临时数组里面
                    }
                }
                return r;
            };
    
    1. 快速排序
    //快速排序
    function quicksort(arr){
        var index,left=0,right=arr.length-1;
        if(arr.length>1){
            index=partition(arr,left,right);
            console.log(index);
            if(left<index-1){
                quickSort(arr,left,index - 1);
            }
            if(index <right){
                quickSort(arr,index,right);
            }
        }
    }
    function partition(items,left,right){
        var pivot=items[Math.floor((right+left)/2)];
        i=left;
        j=right;
        while(i<=j){
            while(items[i]<pivot){
                i++;
            }
            while(items[j]>pivot){
                j--;
            }
            if(i<=j){
                swap(items,i,j);
                i++;
                j--;
            }
        }
        return i;
    
    }
    function swap(items,firstIndex,secondIndex){
        var temp=items[firstIndex];
        items[firstIndex]=items[secondIndex];
        items[secondIndex]=temp;
    }
    

    相关文章

      网友评论

          本文标题:常用数组去重

          本文链接:https://www.haomeiwen.com/subject/hlbeyttx.html