js一些算法实现
//附有调试
function joseph(n,p){
var arr=[];
for(var i=0;i<n;i++){
arr.push(i);
}
debugger;
var flag=0;
var outnum=0;
while(arr.length>1){
//定义到里面 下次外层循环,数组长度已改变,定义到外面的话会死循环,浏览器卡死
var len=arr.length;
for(var i=0;i<len;i++){
flag++;
if(flag==p){
flag=0;
//自行脑补
arr.splice(i-outnum,1);
outnum++;
}
}
}
return arr[0];
}
//IE8以下不支持console.log()
if(window.console){
console.log(joseph(20,3));
}
else{
window.console={
log:function(){},
happentime:function(){}
//对象字面量方式自行构建
}
}
2.斐波那契数列实现
1 类似数列:1,1,2,3,5,8,13,21。。。。。
2
3 function ftbn(n){
4 if(n=1||n=2){
5 return 1;
6 }
7 else
8 {
9 return ftbn(n-1)+ftbn(n-2);
10 }
11 }
3.编写insertAfter
function insertAfter(newElement,targetElement){ var parent=targetElement.parentNode; if(parent.lastChild==targetElement){ targetElement.appendChild(newElement); } else{ parent.insertBefore(newElement,targetElement.nextSibling); } }
4.数组去重
var ss=[1,2,3,3,44,55,55,77,2,3,1];
function decode2(){
var arry={};
var index=0;
var ss2=[];
var len=ss.length;
for(var i=0;i<len;i++){
if(arry[ss[i]]==undefined){ arry[ss[i]]=1;
ss2[index++]=ss[i];
}
else if(arry[ss[i]==1]){continue;}
}
return ss2
}
decode2();
5.实现一个函数,判断一个字符串内出现最多次的字符,并统计这个字符
var s="helloworld";
function countStr(str){
var len=str.length;
var obj={};
for(var i=0;i<len;i++){
var k=str.charAt(i);
if(obj[k]){
obj[k]++;
}
else
{
obj[k]=1;
}
}
var m=0,i=null;
for(var b in obj){
if(obj[b]>m){
m=obj[b];
i=b;
}
}
return i+":"+m;
} countStr(s);
js一些算法实现的更多相关文章
- js的 算法 和 数据结构
js的 算法 1.对一个对象数组按照对象某个属性进行排序 : https://www.cnblogs.com/webcabana/p/7460038.html 在做公交的项目中就碰到过这种算法问题, ...
- 总结下js排序算法和乱序算法
其实本人最怕的就是算法,大学算法课就感觉老师在讲天书,而且对于前端来说,算法在实际的应用中实在是很有限.毕竟算法要依靠大量的数据为基础才能发挥出算法的效率,就浏览器那性能,......是吧,退一万步说 ...
- Round() 四舍五入 js银行家算法(转)
首先问一下round(0.825,2) 返回的结果,大家猜一猜, 首先SQL server 返回的是 0.83 js的返回结果 是0.83,code 如下: var b = 0.825; ...
- 排序图解:js排序算法实现
之前写过js实现数组去重, 今天继续研究数组: 排序算法实现. 排序是数据结构主要内容,并不限于语言主要在于思想:大学曾经用C语言研究过一段时间的排序实现, 这段时间有空用JS再将排序知识点熟悉一遍. ...
- 结构-行为-样式-Js排序算法之 快速排序
快速排序算法,是我的算法系列博客中的第二个Js实现的算法,主要思路: 在一个数组中随机取一个数(一般都取第一个或者最后一个),使这个数与数组中其他数进行比较,如果比它大就放到它的右边,比它小就放 ...
- js排序算法汇总
JS家的排序算法 十大经典算法排序总结对比 一张图概括: 主流排序算法概览 名词解释: n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外 ...
- JS排序算法
1.冒泡排序 冒泡算法是比较相邻的两项,如果前者比后者大,就交换他们. 假设一共有n项,那么一共需要n-1趟,第一趟需要交换n-1次,但是第一趟结束后,最后一项基本确定就是最大项了,所以第二次需要交换 ...
- 常用的 JS 排序算法整理
关于排序算法的问题可以在网上搜到一大堆,但是纯 JS 版比较零散,之前面试的时候特意整理了一遍,附带排序效率比较. //1.冒泡排序 var bubbleSort = function(arr) { ...
- js的算法题
1.统计一个字符串中出现最多的字母 给出一个字符串,统计出现次数最多的字母.如:“wqeqwhixswiqhdxsq”,其中出现最多的是q. js算法的实现 function findMax(str) ...
- js快速排序算法解析
数组的快速排序算法,和并归排序步骤基本类似. 都是先拆分,后合并.并归排序是:拆分容易,合并难. 快速排序是:拆分难,合并容易 要理解快速排序,首先要理解拆分逻辑 要素:找一个基准点,通过操作使得数列 ...
随机推荐
- HDU 1285
#include<stdio.h> #include<string.h> int degree[505],vis[505],map[501][501]; int main() ...
- Unity3d Physically Based Hair Shading in Unreal
---by wolf96 16/10/16
- Tomcat启动时为什么要配置CATALINA_HOME环境变量??
CATALINA_HOME的值被设为Tomcat的安装目录,如果环境变量CATALINA_HOME已经存在,则通过这个环境变量调用bin目录下的“catalina.bat start”命令 1.Tom ...
- public staic void main 总结
jvm 就是java的操作系统.深入了解jvm很必要. public:该函数的修饰符,表示该函数是公有的,无需多言. static 对于函数的修饰,表明该方法为静态方法,可以通过类名直接调用,事项对于 ...
- Linux串口调试
shell方式 1.使用minicon -s配置串口并保存: 2.使用setserial /dev/ttyUSB0 -a等查看串口配置: 3.接收侧cat /dev/ttyUSB0等待串口输出: 4. ...
- 【原创】关于hashcode和equals的不同实现对HashMap和HashSet集合类的影响的探究
这篇文章做了一个很好的测试:http://blog.csdn.net/afgasdg/article/details/6889383,判断往HashSet(不允许元素重复)里塞对象时,是如何判定set ...
- POJ2479,2593: 两段maximum-subarray问题
虽然是两个水题,但是一次AC的感觉真心不错 这个问题算是maximum-subarray问题的升级版,不过主要算法思想不变: 1. maximum-subarray问题 maximum-subarra ...
- Codeforces295A - Greg and Array(线段树的成段更新)
题目大意 给定一个序列a[1],a[2]--a[n] 接下来给出m种操作,每种操作是以下形式的: l r d 表示把区间[l,r]内的每一个数都加上一个值d 之后有k个操作,每个操作是以下形式的: x ...
- DIV遮罩层传值
今天费了很大的劲儿才搞定!下面贴出代码和总结: 1.首先是前台代码: <%@ Page Title="" Language="C#" MasterPage ...
- 全英文版时间格式化07/29/2010 4:14:01 PM
之前格式化,AM PM出不来,总是显示上午 下午 aspx页面的绑定: <%#Eval("AddDate") == DBNull.Value ? "" : ...