1.冒泡排序分析:

例:将数组[9,8,7,6,5,4,3,2,1,0]按照从小打大的顺序进行冒泡排序。

演变过程:

第一趟:

8,7,6,5,4,3,2,1,0,9    比较了9次;

第二趟:

7,6,5,4,3,2,1,0,8,9    比较了8次;

第三趟:

6,5,4,3,2,1,0,7,8,9    比较了7次;

第四趟:

5,4,3,2,1,0,6,7,8,9    比较了6次;

第五趟:

4,3,2,1,0,5,6,7,8,9    比较了5次;

第六趟:

3,2,1,0,4,5,6,7,8,9    比较了4次;

第七趟:

2,1,0,3,4,5,6,7,8,9    比较了3次;

第八趟:

1,0,2,3,4,5,6,7,8,9    比较了2次;

第九趟:

0,1,2,3,4,5,6,7,8,9    比较了1次;

外层循环循环1次,内层循环9次。

外层趟数一共是数组长度(array.length-1),设置外层循环for(var i=0;i<array.length-1;i++)

内层比较次数随着外层趟数的增加而递减,但是比较的次数与外层的趟数的和为10即数组长度array.length.所以设内层循环为for(var j=0;j<array.length-1-i)  ----减去i是为了提升效率后面不需要再进行比较了(每次的比较次数都在递减)。

实例:

     冒泡排序,从小到大    [65,97,76,13,27,49,58]
            var array=[65,97,76,13,27,49,58];
            for(var i=0;i<array.length-1;i++){
                for(var j=0;j<array.length-1-i;j++){
                    if(array[j]>array[j+1]){
                        var temp=array[j];
                        array[j]=array[j+1];
                        array[j+1]=temp;
                    }
                }
            }
             console.log(array);
       //从大到小排序
        var array=[65,97,76,13,27,49,58];
        for(var i=0;i<array.length-1;i++){
            for(var j=0;j<array.length-1-i;j++){
                if(array[j]<array[j+1]){
                    var temp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                }
            }
        }
        console.log(array);

2.函数

函数:代码复用的一种机制或封装某种功能的代码段。

函数的定义:

function 函数名([参数列表]){

函数体(都是可执行的或是要执行的代码);

}

函数名:一般是一个动词,代表某种功能,名字最好也要遵循驼峰命名法。

函数的调用:   函数名();

函数的好处:一次声明或定义,多次调用。

函数的组成----三要素: 函数的三要素: 函数名(函数的功能),参数,返回值

每一个函数都有返回值,如果没有明确的返回值,一般返回undefined。

函数的形参与实参:

在函数调用的时候,会将函数的实参复制一份传给形参之中,函数的形参与实参的个数是可以不一样的。

var i= 0;
function getSum(a,b,c){ // 在函数定义的时候,使用的参数叫做形参,起占位置的作用
    // arguments
    a = a || 0;
    b = b || 0;
    c = c || 0;
    console.log(a+b+c);
} getSum(10,20);//在函数真正的调用的时候,传入的数据,才是实参

函数里return的用法:

Return一般返回的是函数之中的数据,return之后如果跟着的是数据,那么该数据就是整个函数最后的返回值。程序运行时会将这个值先返回出去,接着跳出当前函数,后面的代码就不再执行了。若是return之后没有数据,程序运行到此之后就会立刻跳出当前函数,之后的代码都不会再执行。

function getSum(a,b){
    a = 100;
    return  a + b ; //将计算后的结果用关键字return返回出去
    console.log("看我执行了没有。。。。"); // return后面的代码不再执行
}
var num = getSum(a,b);
console.log(num*2);

函数的嵌套:一个函数里调用里一个函数。

例:

求3个数中的最大值
  function max(a,b){
           if(a>b){
              return a ;
           }else{
               return b;
           }        }
         function max2(a,b,c){
//             var d=max(a,b);
//             var e=max(d,c);
             var f=max(max(a,b),c);  //函数max2之中调用了max的函//数方法
//             return e;
             return f;
         }
         console.log(max2(4,8,10));

学习js第三天小结的更多相关文章

  1. 学习javascript数据结构(三)——集合

    前言 总括: 本文讲解了数据结构中的[集合]概念,并使用javascript实现了集合. 原文博客地址:学习javascript数据结构(三)--集合 知乎专栏&&简书专题:前端进击者 ...

  2. X-Cart 学习笔记(三)X-Cart框架2

    目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 3.了解 ...

  3. 学习KnockOut第三篇之List

    学习KnockOut第三篇之List 欲看此篇---------------------------------------------可先看上篇.          第一步,先搭建一个大概的框架起来 ...

  4. (转载)CSS3与页面布局学习总结(三)——BFC、定位、浮动、7种垂直居中方法

    目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...

  5. .NET MVC 学习笔记(三)— MVC 数据显示

    . NET MVC 学习笔记(三)—— MVC 数据显示 在目前做的项目中,用的最多的数据展示控件就是table展示(说不是的请走开,不是一路人),以下详细阐述下table的使用方法. 先看效果: 上 ...

  6. The Road to learn React书籍学习笔记(第三章)

    The Road to learn React书籍学习笔记(第三章) 代码详情 声明周期方法 通过之前的学习,可以了解到ES6 类组件中的生命周期方法 constructor() 和 render() ...

  7. sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)

    sql server 关于表中只增标识问题   由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...

  8. Vue.js+vue-element搭建属于自己的后台管理模板:更深入了解Vue.js(三)

    前言 上一章我们介绍了关于Vue实例中一些基本用法,但是组件.自定义指令.Render函数这些放到了本章来介绍,原因是它们要比前面讲的要难一些,组件是Vue.js最核心的功能,学习使用组件也是必不可少 ...

  9. 前端学习:JS(面向对象)代码笔记

    前端学习:JS(面向对象)代码笔记 前端学习:JS面向对象知识学习(图解) 创建类和对象 创建对象方式1调用Object函数 <body> </body> <script ...

随机推荐

  1. 我的虚拟机静态IP配置

  2. JMeter 插件 Json Path 解析 HTTP 响应 JSON 数据(转)

    JMeter 是一个不错的负载和性能测试工具,我们也用来做 HTTP API 接口测试.我们的 API 返回结果为 JSON 数据格式.JSON 简介,JSON 教程. JSON 已经成为数据交换格式 ...

  3. 导入导出Excel文件

    搭建环境 先新建web project ,然后Add Struts Capabilties: 下载导入导出Excel所需的jar包: poi-3.8-20120326.jar包  :  http:// ...

  4. Tomcat里面的APR配置问题研究

    这里,之所以研究这个问题,是因为我们的生产系统Linux环境下的tomcat日志里面,启动信息的地方有这么一个WARNING. INFO: The APR based Apache Tomcat Na ...

  5. eclipse配置maven后无法下载jar

    1.检查网络拦截是否正常 2.进入maven依赖库根目录搜索出该目录下的*lastUpdated.properties文件并删除 然后就可以继续下载jar包了

  6. 17行代码解决微信小程序图片延迟加载

    js 页面 Page({ data: { realScrollTop: 0,//页面滚动距离 driveHeight //屏幕高度可初始化设置 }, scroll(e){ if(e.detail.sc ...

  7. sql server 安装时提示要重启

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 打开“Session Manager”文件夹之后在右侧的区域中单 ...

  8. 黄聪:利用ImageMagicK给图片加水印

    1 图片水印处理 假设把名为logo.gif的水印图标添加在原始图片(src.jpg)右下角,且水印的下边缘距原始图片10像素.右边缘距原始图片5像素.使用如下命令即可: convert src.jp ...

  9. Java第03次实验提纲(面向对象1-基本概念)

    0. 将码云的项目clone到本机 请参考使用Eclipse Egit与码云管理你的代码中的3 从码云将项目clone到你的电脑 之后就可以在Eclipse中提交本地项目新增或修改的文件.如果在Ecl ...

  10. 从源代码更新glibc

    先看下INSTALL/README: mkdir一个目录专用于build: ../configure --prefix=/usr: make之后make check: 进入single user mo ...