资讯专栏INFORMATION COLUMN

常见算法整理

winterdawn / 960人阅读

摘要:常见算法比较两个数组数组去重以下没有方法。对基准左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。去掉字符串中所有空格包括中间空格需要设置第个参数为

常见js算法 1.比较两个数组
Array.prototype.diff = function(a) {
    return this.filter(function(i) {return a.indexOf(i) < 0;});
};

////////////////////  
// Examples  
////////////////////

[1,2,3,4,5,6].diff( [3,4,5] );  
// => [1, 2, 6]

["test1", "test2","test3","test4","test5","test6"].diff(["test1","test2","test3","test4"]);  
// => ["test5", "test6"]
2.数组去重
    var arr = ["a", "b", "c", "1", 0, "c", 1, "", 2,1, 0];
/*    function unique(){
        var ret = [];
        for(var i =0; i
3.数组从小到大排序
    var arr = [1,0,10,3,5,6,2];
    arr.sort(function(a,b){
        return a - b;  //从小到大排序
    })
4. 10秒倒计时定时器
    var seconds = 10;
    var timeAlarm = setInterval(showTime,1000);
    function showTime(){
        seconds -= 1;
        console.log(seconds);
        if (seconds == 0) {
            clearInterval(timeAlarm);
        };
    };
5.快速排序

快排的思想:  

在数据集之中,选择一个元素作为"基准"(pivot)。

所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。

对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。
快排最坏时间O(n2),最好时间O(nlgn)

    function quickSort(arr){
        if(arr.length <= 1){ return arr;}
        var pivotIndex = Math.floor(arr.length / 2);
        var pivot = arr.splice(pivotIndex,1)[0];
        var left = [] ,right =[];
        for(var i = 0;i pivot){
                right.push(arr[i]);
            }else{
                left.push(arr[i]);
            }
        };
        return quickSort(left).concat([pivot],quickSort(right));
    };
    var data =[85,24,63,45,17,31,96,50];
    console.log( quickSort(data) );
6.随机选取从10-100的10个数字。
        var iArray =[];
        function getRandom(iStart,iEnd){
            var iChoice = iStart-iEnd+1;
            return Math.abs(Math.floor(Math.random()*iChoice))+iStart;
        }
        for(var i=0;i<10;i++){
            iArray.push(getRandom(0,10))
        };
7.去掉字符串中所有空格(包括中间空格,需要设置第2个参数为:g)
        function Trim(str,is_global)
        {
            var result;
            result = str.replace(/(^s+)|(s+$)/g,"");
            if(is_global.toLowerCase()=="g")
            {
                result = result.replace(/s/g,"");
             }
            return result;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80739.html

相关文章

  • ❤️导图整理大厂面试高频数组8: 移除元素的双指针优化, 力扣27❤️

    此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), 毕竟算法不是做了一遍就能完全记住的. 所以本文适合已经知道解题思路和方法, 想进一步加强理解和记忆的朋友, 并不适合第一次接触此题的朋友(可以根据题号先去力扣看看官方题解, 然后再看本文内容). 关...

    zhangyucha0 评论0 收藏0
  • 思维导图整理大厂面试高频数组24: 合并两个有序数组的两种双指针思想, 力扣88

    摘要:此专栏文章是对力扣上算法题目各种方法的总结和归纳整理出最重要的思路和知识重点并以思维导图形式呈现当然也会加上我对导图的详解目的是为了更方便快捷的记忆和回忆算法重点不用每次都重复看题解毕竟算法不是做了一遍就能完全记住的所 ...

    darkerXi 评论0 收藏0
  • 常见gc算法

    摘要:根搜索算法它的处理方式就是,设立若干种根对象,当任何一个根对象到某一个对象均不可达时,则认为这个对象是可以被回收的。 引用计数算法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。 缺点:引用和去引用伴随加法和减法,影响性能。 致命的缺陷:对于循环引用的对象无法进行回收。 根搜索算法 它的...

    Leo_chen 评论0 收藏0
  • Javascript之常见算法整理(持续更新)

    摘要:所以平均来说,插入排序的时间复杂度是。显然,次方级别的时间复杂度代表着插入排序不适合数据特别多的情况,一般来说插入排序适合小数据量的排序。 更新了几个知识点~欢迎一起交流呀~ 一、排序 冒泡排序(复杂度O(n^2)) //冒泡排序 function bubbleSort(arr) { for(var i = 0, len = arr.length; i < len - 1; +...

    cc17 评论0 收藏0
  • 从简历被拒到收割今日头条 offer,我用一年时间破茧成蝶!

    摘要:正如我标题所说,简历被拒。看了我简历之后说头条竞争激烈,我背景不够,点到为止。。三准备面试其实从三月份投递简历开始准备面试到四月份收,也不过个月的时间,但这都是建立在我过去一年的积累啊。 本文是 无精疯 同学投稿的面试经历 关注微信公众号:进击的java程序员K,即可获取最新BAT面试资料一份 在此感谢 无精疯 同学的分享 目录: 印象中的头条 面试背景 准备面试 ...

    tracymac7 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<