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快速排序算法解析
数组的快速排序算法,和并归排序步骤基本类似. 都是先拆分,后合并.并归排序是:拆分容易,合并难. 快速排序是:拆分难,合并容易 要理解快速排序,首先要理解拆分逻辑 要素:找一个基准点,通过操作使得数列 ...
随机推荐
- lua与C/C++交互
Lua设计小巧很容易与C/C++进行交互,下面我们具体讲解C/C++中如何调用lua,而lua中又如何调用C代码. 首先lua和C交互的一个重要的数据结构lua_State,它是进行数据交换的堆栈,按 ...
- linux网站配置文件.htaccess伪静态转换到IIS web.config中
linux下的php网站放到Windows服务器IIS下.htaccess文件伪静态规则转换. 此办法只适合于linux下的php网站放到Windows服务器IIS下,网站除了主页面正常以外子页面 ...
- ModelSim仿真
(1)出现“Fatal: SDF files require Altera primitive library” 书上的方法是在ModelSim-SE下的使用,而我用的是ModelSim-Alter ...
- ACM编程技巧--代码片段
验证n是否是完全平方数 #include<math.h> double m=sqrt(n); if(floor(m+0.5)==m) printf("%d是完全平方数.\n&qu ...
- Oracle数据库字符串连接方法
转至:http://database.51cto.com/art/201011/232267.htm 和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLSe ...
- POJ3155 Hard Life
Time Limit: 8000MS Memory Limit: 65536K Total Submissions: 8482 Accepted: 2461 Case Time Limit: ...
- OutLook中发送用户密码加密的小技巧
1 在左上栏目里面选择 New E-mail选项卡,点击进入发送新邮件页面. 2 在第一栏选择Options选项,点击打开 3 看到有一个红色按钮Perssion按钮,打开 4 ...
- Moq4在.NET3.5和.NET4版本之间的差异
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Moq4在.NET3.5和.NET4版本之间的差异.
- 织梦/dedecms 当文章转载时不需要设置图片水印的设置,取消’图片是否加水印‘的复选框,并且修改如下文件即可生效
当想添加水印是选中“图片是否加水印”复选框即可. 找到include/helpers/image.helper.php这个文件,在里面找到中的if( isset($GLOBALS['needwater ...
- oracle调优 浅析关联设计
浅析关联设计 [范式] 比較理想的情况下,数据库中的不论什么一个表都会相应到现实生活中的一个对象,如球员是一个对象,球队是一个对象,赛程是一个对象,比赛结果又是一个对象等等,则就是范式. [关联设计] ...