算法

来源:互联网 发布:vscode选中单词 编辑:程序博客网 时间:2024/06/18 10:12

算法在鄙人目前的工作中用得很少,但闲暇之余逛知乎,走简书,许多大神无不强调着算法的重要性!算法考量了程序员的基础、思维能力以及内功的深厚程度。

于是,便花时间学习总结了一些常见的算法:

// 冒泡算法    var arr = [2,15,21,4,121,1410,12,45,1001,178,1216874,1546874,1245];        function bubbleSort(arr) {            var len = arr.length;            for (var i = 0; i < len; i++) {                for (var j = 1; j < len; j++) {                    if (arr[j] > arr[j+1]) {        //相邻元素两两对比                                              var temp = arr[j];          //元素交换                        arr[j] = arr[j+1];                        arr[j+1] = temp;                    }                }            }            return arr;        }        console.log(bubbleSort(arr));
// 元素交换    function swap (a,b) {        b = b - a;        a = b + a;        b = a - b;        return [a,b]    }    console.log(swap(1,2));
//快速排序var arr = [2,15,21,4,121,1410,12,45,1001,178,1216874,1546874,1245];    function quickSort (arr) {        console.time();        if(arr.length <=1 ){            return arr;        }        var leftArr = [],rightArr = [];        var q= arr[0];        for(var i = 1 ; i<arr.length;i++){            if (arr[i] > q) {                rightArr.push(arr[i]);            } else {                leftArr.push(arr[i]);            }        }        console.timeEnd();        return [].concat(quickSort(leftArr),[q],quickSort(rightArr));    }    console.log(quickSort(arr));
// 字符串出现最多的字符和出现次数    var str = "nninihao";    var o = {};    for(var i = 0 ; i<str.length;i++){        var _char = str.charAt(i);            console.log(_char);//ninihao        if(o[_char]) {            o[_char]++;        } else {            o[_char] = 1;        }    }    console.log(o); //{n: 3, i: 2, h: 1, a: 1, o: 1}    var max = 0;    for( var key in o) {        if(o[key] > max) {            console.log(key);   // n            console.log(o[key]);   // 3            max = o[key]; //始终令max保持最大值        }    }       for( var key in o ) {        if(o[key] == max) {  //当出现次数等于最大值时输出            console.log("最多的字符是" + key);            console.log("出现的次数是" + max);        }    }
    //查找某个字符串出现的位置    var arr = "aabfcsdfks";    var index = -1;    do{        console.log(index);//-1 3 7        index = arr.indexOf("f", index+1);        console.log(index);//3 7 -1        if (index != -1) {            //字符串没有出现,返回-1            console.log(index);//3 7         };    }    while(index != -1);

持续更新中..

原创粉丝点击