基础实验2: js练习

吕梦扬
2014013452
lmy1229@126.com


基础练习

练习1

练习2

练习3

练习4

练习5


进阶练习

进阶练习1-比赛预测

设计思路

测试结果

进阶练习2-查找信息

思路

此题比较简单,直接通过javascript函数中的argumentstypeof来判断参数类型,根据不同的类型进行不同的处理.


Bonus

Bonus1-找不同

采用了两种方法:

  1. 暴力搜索法, 遍历所有第二个集合中的元素,在第一个集合中查找是否有相同的, 如果没有,则加入结果的集合中. 算法复杂度O(n*m).其中n为第一个集合的元素个数,m为第二个集合的元素个数.
  2. 首先使用JavaScript的sort()函数将两个集合分别排序,然后使用类似于归并的思想查找在集合2而不在集合1中的元素. 算法复杂度为O(nlog(n)+mlog(m))

Bonus2-排序算法

将算法导论中的基本排序算法(冒泡,插入,选择排序)用JavaScript实现一遍, 分别为bubble_sort, insertion_sortselection_sort. 这些函数均支持在第二个参数处传入一个比较函数来自定义排序的表现.


注意

  1. 本markdown文档为了输入公式,使用了MathJax.js.由于这个库本身比较大,因此采用了网络加载的形式.请在联网的情况下打开本文档,否则可能出现公式无法正常显示的问题.
  2. 所有代码的测试样例请参见js文件尾部的// for testing部分.