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. ML(5)——神经网络1(神经元模型与激活函数)

    上一章介绍了使用逻辑回归处理分类问题.尽管逻辑回归是个非常好用的模型,但是在处理非线性问题时仍然显得力不从心,下图就是一个例子: 线性模型已经无法很好地拟合上面的样本,所以选择了更复杂的模型,得到了复 ...

  2. 记一个视频播放器插件 video.js

    最近在看扣丁学堂上面的一些视频, 突然对他用的视频播放器有点兴趣, 他也是采用的 ts切片播放, 如果使用传统的video标签是无法实现的 他使用的插件叫做 video.js 官网地址 官网提供的播放 ...

  3. thinkphp5 列表页数据分页查询2-带搜索条件

    一.控制器部分 <?php namespace app\user\controller; use app\index\controller\Common; use app\user\model\ ...

  4. 贝尔金(Belkin)7231-4P tftp救砖

    参考: http://www.right.com.cn/forum/thread-14568-1-1.html 一.准备: 用串口线连上路由板串口,VCC不接,接在J2处,网口远离自己,从左到右为GN ...

  5. IO流中File文件最常用和直接的用法

    一.File (一)概述 1.File: 1)文件和目录(文件夹)路径名的抽象表示形式 2)注意: 可以表示文件夹与文件,即路径与文件 抽象概念,即路径与文件是否存在不确定   2.构造方法 1)Fi ...

  6. java中的自定义注解的使用

    https://www.cnblogs.com/acm-bingzi/p/javaAnnotation.html

  7. elasticsearch 5.1 别的机器无法访问9200端口

    版权声明:作者:jiankunking 出处:http://blog.csdn.net/jiankunking 本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显 ...

  8. 【分布式session】Spring-session的使用

    概述 Session用于保存用户信息,通常一个Session保存一个用户信息,在以Tomcat为Servlet Container的web应用中,用户信息都保存在HttpSession中: 当用户发起 ...

  9. live555峰哥的私房菜(二)-----计划任务(TaskScheduler)探讨

    计划任务(TaskScheduler)探讨 上一篇谈到SingleStep()函数会找到三种任务类型并执行之. 这三种任务是: socket handler, event handler, delay ...

  10. Dubbo(5)优化:接口抽取以及依赖版本统一

    优化点: 1.在上面provider和consumer程序中都存在DemoProviderService接口了,两个项目中存在同样的东西,代码多余以及不方便管理: 正式的项目中存在很多的接口的,将统一 ...