1.约瑟夫环实现
  1. //附有调试
  2. function joseph(n,p){
  3. var arr=[];
  4. for(var i=0;i<n;i++){
  5. arr.push(i);
  6. }
  7. debugger;
  8. var flag=0;
  9. var outnum=0;
  10. while(arr.length>1){
  11. //定义到里面 下次外层循环,数组长度已改变,定义到外面的话会死循环,浏览器卡死
  12. var len=arr.length;
  13. for(var i=0;i<len;i++){
  14. flag++;
  15. if(flag==p){
  16. flag=0;
  17. //自行脑补
  18. arr.splice(i-outnum,1);
  19. outnum++;
  20. }
  21. }
  22. }
  23. return arr[0];
  24. }
  25. //IE8以下不支持console.log()
  26. if(window.console){
  27. console.log(joseph(20,3));
  28. }
  29. else{
  30. window.console={
  31. log:function(){},
  32. happentime:function(){}
  33. //对象字面量方式自行构建
  34. }
  35. }

2.斐波那契数列实现

  1. 1 类似数列:1123581321。。。。。
  2. 2
  3. 3 function ftbn(n){
  4. 4 if(n=1||n=2){
  5. 5 return 1;
  6. 6 }
  7. 7 else
  8. 8 {
  9. 9 return ftbn(n-1)+ftbn(n-2);
  10. 10 }
  11. 11 }

3.编写insertAfter

  1. function insertAfter(newElement,targetElement){
  2.  
  3. var parent=targetElement.parentNode;
  4.  
  5. if(parent.lastChild==targetElement){
  6.  
  7. targetElement.appendChild(newElement);
  8.  
  9. }
  10.  
  11. else{
  12.  
  13. parent.insertBefore(newElement,targetElement.nextSibling);
  14.  
  15. }
  16.  
  17. }

4.数组去重

  1. var ss=[1,2,3,3,44,55,55,77,2,3,1];
  2. function decode2(){
  3. var arry={};
  4. var index=0;
  5. var ss2=[];
  6. var len=ss.length;
  7. for(var i=0;i<len;i++){
  8. if(arry[ss[i]]==undefined){
  9.  
  10. arry[ss[i]]=1;
  11. ss2[index++]=ss[i];
  12. }
  13. else if(arry[ss[i]==1]){continue;}
  14. }
  15. return ss2
  16. }
  17. decode2();

5.实现一个函数,判断一个字符串内出现最多次的字符,并统计这个字符

  1. var s="helloworld";
  2. function countStr(str){
  3. var len=str.length;
  4. var obj={};
  5. for(var i=0;i<len;i++){
  6. var k=str.charAt(i);
  7. if(obj[k]){
  8. obj[k]++;
  9. }
  10. else
  11. {
  12. obj[k]=1;
  13. }
  14. }
  15. var m=0,i=null;
  16. for(var b in obj){
  17. if(obj[b]>m){
  18. m=obj[b];
  19. i=b;
  20. }
  21. }
  22. return i+":"+m;
  23. } countStr(s);

js一些算法实现的更多相关文章

  1. js的 算法 和 数据结构

    js的 算法 1.对一个对象数组按照对象某个属性进行排序  : https://www.cnblogs.com/webcabana/p/7460038.html 在做公交的项目中就碰到过这种算法问题, ...

  2. 总结下js排序算法和乱序算法

    其实本人最怕的就是算法,大学算法课就感觉老师在讲天书,而且对于前端来说,算法在实际的应用中实在是很有限.毕竟算法要依靠大量的数据为基础才能发挥出算法的效率,就浏览器那性能,......是吧,退一万步说 ...

  3. Round() 四舍五入 js银行家算法(转)

    首先问一下round(0.825,2) 返回的结果,大家猜一猜, 首先SQL server 返回的是 0.83 js的返回结果 是0.83,code 如下: var b = 0.825;        ...

  4. 排序图解:js排序算法实现

    之前写过js实现数组去重, 今天继续研究数组: 排序算法实现. 排序是数据结构主要内容,并不限于语言主要在于思想:大学曾经用C语言研究过一段时间的排序实现, 这段时间有空用JS再将排序知识点熟悉一遍. ...

  5. 结构-行为-样式-Js排序算法之 快速排序

    快速排序算法,是我的算法系列博客中的第二个Js实现的算法,主要思路:    在一个数组中随机取一个数(一般都取第一个或者最后一个),使这个数与数组中其他数进行比较,如果比它大就放到它的右边,比它小就放 ...

  6. js排序算法汇总

    JS家的排序算法   十大经典算法排序总结对比 一张图概括: 主流排序算法概览 名词解释: n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外 ...

  7. JS排序算法

    1.冒泡排序 冒泡算法是比较相邻的两项,如果前者比后者大,就交换他们. 假设一共有n项,那么一共需要n-1趟,第一趟需要交换n-1次,但是第一趟结束后,最后一项基本确定就是最大项了,所以第二次需要交换 ...

  8. 常用的 JS 排序算法整理

    关于排序算法的问题可以在网上搜到一大堆,但是纯 JS 版比较零散,之前面试的时候特意整理了一遍,附带排序效率比较. //1.冒泡排序 var bubbleSort = function(arr) { ...

  9. js的算法题

    1.统计一个字符串中出现最多的字母 给出一个字符串,统计出现次数最多的字母.如:“wqeqwhixswiqhdxsq”,其中出现最多的是q. js算法的实现 function findMax(str) ...

  10. js快速排序算法解析

    数组的快速排序算法,和并归排序步骤基本类似. 都是先拆分,后合并.并归排序是:拆分容易,合并难. 快速排序是:拆分难,合并容易 要理解快速排序,首先要理解拆分逻辑 要素:找一个基准点,通过操作使得数列 ...

随机推荐

  1. lua与C/C++交互

    Lua设计小巧很容易与C/C++进行交互,下面我们具体讲解C/C++中如何调用lua,而lua中又如何调用C代码. 首先lua和C交互的一个重要的数据结构lua_State,它是进行数据交换的堆栈,按 ...

  2. linux网站配置文件.htaccess伪静态转换到IIS web.config中

    linux下的php网站放到Windows服务器IIS下.htaccess文件伪静态规则转换.   此办法只适合于linux下的php网站放到Windows服务器IIS下,网站除了主页面正常以外子页面 ...

  3. ModelSim仿真

    (1)出现“Fatal: SDF files require Altera primitive library”  书上的方法是在ModelSim-SE下的使用,而我用的是ModelSim-Alter ...

  4. ACM编程技巧--代码片段

    验证n是否是完全平方数 #include<math.h> double m=sqrt(n); if(floor(m+0.5)==m) printf("%d是完全平方数.\n&qu ...

  5. Oracle数据库字符串连接方法

    转至:http://database.51cto.com/art/201011/232267.htm 和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLSe ...

  6. POJ3155 Hard Life

    Time Limit: 8000MS   Memory Limit: 65536K Total Submissions: 8482   Accepted: 2461 Case Time Limit:  ...

  7. OutLook中发送用户密码加密的小技巧

    1     在左上栏目里面选择  New E-mail选项卡,点击进入发送新邮件页面. 2    在第一栏选择Options选项,点击打开 3    看到有一个红色按钮Perssion按钮,打开 4 ...

  8. Moq4在.NET3.5和.NET4版本之间的差异

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Moq4在.NET3.5和.NET4版本之间的差异.

  9. 织梦/dedecms 当文章转载时不需要设置图片水印的设置,取消’图片是否加水印‘的复选框,并且修改如下文件即可生效

    当想添加水印是选中“图片是否加水印”复选框即可. 找到include/helpers/image.helper.php这个文件,在里面找到中的if( isset($GLOBALS['needwater ...

  10. oracle调优 浅析关联设计

    浅析关联设计 [范式] 比較理想的情况下,数据库中的不论什么一个表都会相应到现实生活中的一个对象,如球员是一个对象,球队是一个对象,赛程是一个对象,比赛结果又是一个对象等等,则就是范式. [关联设计] ...