js算法(二)

例子1:冒泡排序

冒泡排序思想:(1)依次比较两个相邻的数字,小的放前面,大的放后面

//冒泡排序

function bubbleSort(tmpArr) {

   for(var i = tmpArr.length-1; i > 0; i--) {

     for(var j=0; j<i; j++) {
        if(tmpArr[j] > tmpArr[j+1]) {
            swap(j,j+1);
        }
     }
   }
}

function swap(a,b) {
    var tmp = arr[a];

    arr[a] = arr[b];
    arr[b] = tmp;
}

bubbleSort(arr);
console.log(arr);

例子2:快速排序(1)选择一个元素作为基准(2)比该元素小的放在左边,比该元素大的放在右边(3)重复以上步骤

//数组去重快速排序

var arr = [8,10,4,2,5,7,3,5,6,8];

function quickSort(tmpArr) {

 if(tmpArr.length <= 1) {
    return tmpArr;
 }

   var left = [];
   var right =[];
   var index = Math.floor(tmpArr.length / 2);
   var middleVal = tmpArr.splice(index,1)[0];

   // document.write(middleVal);

    for(var i=0; i<tmpArr.length; i++) {
        if(tmpArr[i] > middleVal) {
            right.push(tmpArr[i]);
        }else {
            left.push(tmpArr[i]);
        }
    }
    return quickSort(left).concat(middleVal,quickSort(right));
}


var newArr = quickSort(arr);

console.log(newArr);

3.this关键字

(1)它是个关键字,不能当成变量使用。

(2)代表函数运行时产生的一个对象,只能在函数内部使用。

(3)随着函数的使用场合不同,this会发生改变。

(4)指向调用函数的对象。

例子(1)

function fn() {
  this.x = 'hello';
  console.log(this.x);
}
fn();//hello

例子(2)

function fn() {
  this.x = 'hello';
  console.log(this.x);
  console.log(this.b);
}
var obj = {
  a:fn,
  b:"Object"
}
obj.a();//hello,Object

4.例子(1)

// 打印输出结果

console.log(1 + "2"+"2");   //数字与字符串进行连接,合成一个新的字符串 //122;
console.log(1+ +"2"+"2");   // 一元+操作符可将字符串转换为数字 //‘32’
console.log("A" - "B"+"2");  // NaN(无法转换数字的情况下产生的值) 'NaN2';
console.log("A"- "B"+2);     // NaN + 2 = NaN

例子(2)

    function test() {

      var n = 4399;

      function add() {
        n++;   // 4401
        console.log(n);
      }

      return {
        n: n,
        add: add
      }
    }

    var result = test();
    var result2 = test();


    result.add();       // 4400
    result.add();      //4401
    console.log(result.n);   // 4399
    result2.add();    //  4400

例子(3)

var arr = [];

arr[0] = 0;

arr[1] = 1;

arr.foo = 'c';   // 作为数组的自定义属性添加,首先可以正常使用,但是不会添加到数组的长度内;

console.log(arr.length);//2

例子(4)

  var a = undefined;
  var b = 'false';
  var c = '';

  function print(val) {
     // val === 'undefined';  非空的字符串 string   true    空字符串转换为布尔值  false;  undefined == false;
    if (val) {
      alert(true);
    } else {
      alert(false);
    }

  }

  print(a);  //true
  print(b);   // true
  print(c);   //false

例子(5)

  var person = {
    fname: 'john',
    lname: 'Doe',
    age: 25
  };

  var txt = "";

  for (var o in person) {
    txt += person[o];   //'john';   'Doe';  25;   txt = 'johnDoe25';
  }

  console.log(txt);  //johnDoe25

例子(6)

//考察数组的掌握程度  自身改变操作以及生成新的数组的操作

var arr = [1, 2, 3];

arr.shift();   // arr = [2,3];  arr.shift = [1];

arr.push(1);   //arr = [2,3,1];

arr.unshift(2);  // arr = [2,2,3,1];

var newArr = arr.concat([1, 2]);  //newArr =  [2,2,3,1,1,2];

console.log(newArr);

例子(7)

// JS没有块级作用域

var msg = 'hello';   //几乎没用 障眼法

for (var i = 0; i < 10; i++) {

  var msg = 'hello' + i * 2 + i;  //'hello' + 9*2 + 9;    'hello' + 18 + 9;    'hello189';

}

console.log(msg);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值