数据科学001Coursera课程Algorithmic Toolbox 第一周总结
算法工具箱 Algorithmic Toolbox
学习目标
- 联系实现算法
- 练习测试和压力测试程序
- 估计慢算法和快算法的不同
算法是计算机科学的核心
我们编写的程序应当能够应对所有允许的输入并且给出正确的结果,同时还要满足一定的时间限制和内存限制。
Maximum Pairwise Product
Problem
Given a sequence of non-negative integers a0,…,an−1, find the maximum pairwise product, that is, the largest integer that can be obtained by multiplying two different elements from the sequence (or, more formally, max 0≤i≠j≤n−1 aiaj). Different elements here mean ai and aj with i≠j (it can be the case that ai=aj).
Input format
The first line of the input contains an integer n. The next line contains n non-negative integers a0,…,an−1 (separated by spaces).
Constraints
2≤n≤2⋅105; 0≤a0,…,an−1≤105.
Output format
Output a single number — the maximum pairwise product.
对于C/C++ 来说,本题需要考虑的一个问题就是输出的结果可能会溢出,因为10的10次方远远超过整形数据所能表示的最大值,因此在使用C/C++时 可以考虑使用long long型来表示结果。对于python则不存在溢出的问题。
压力测试
测试技术
- 一些简单的手工编写的用例
- 测试所有可能的答案(包括最小/最大输出,结果不存在等)
- 测试时间/内存限制,编写允许的最多的输入的用例来测试时间和内存的消耗
- 测试边界值,包括
最小允许的“n”,即输入的序列或者字符串长度,查询的数量等
相同的数字,字符串中相同的字符,更通俗的说,输入中两个相同的项。没有限制输入必须不同的问题都有可能有两个相同的输入
问题允许输入的最大数字,比如测试一些整数溢出
一些退化的用例,比如空集,单链二叉树等
当这些方法都尝试过,但仍然有一些用例无法通过时,可以尝试压力测试。
压力测试包括四部分
- 你要想测试的解决方案
- 一个不同的,可能是琐碎,很慢的但是又非常容易实现而且明显是一个正确的解决问题的方法
- 一个用例生成程序
- 一个无限循环程序,生成用例然后用1和2进行测试比对结果,如果结果不同则反馈测试用例和两个不同的结果。
如果两个方案一对一错,则一定存在结果不同的用例。即使两个方案都存在错误,只要错误不同,也有很大概率两个方案在某些用例给出不同结果。这些都可以用来定位错误。尽量多尝试较小的导致错误的测试用例,这样定位错误也会比较快捷,同时尝试不同的测试空间来产生压力测试的用例。
转载于:https://www.cnblogs.com/Libra-Beta/p/7411759.html
- 点赞
- 收藏
- 分享
- 文章举报
- 基于Python数据科学挖掘精华实战课程(二)
- 简单总结一下计算机科学(CS)的课程体系
- 数据结构课程大总结
- 数据科学导论课程笔记(四):数据隐私
- MIT 计算机科学及编程导论课程笔记--课程目标,数据类型,运算,变量
- 约翰霍普金斯大学数据科学系列课程
- [Strata Data Conference培训课程] 数据科学精髓:互联网金融实例-量化线上金融信用与欺诈风险的评估
- 数据科学导论课程笔记(二):数据可视化
- 数据结构课程总结
- 数据结构课程总结
- 大学 计算机科学与技术专业 数据挖掘与知识发现课程 资源总结
- 数据科学家自我修养——一份数据科学的开放课程清单
- 深度学习DeepLearning.ai系列课程学习总结:6. 具有一个隐藏层的平面数据分类代码实战
- 数据科学(大数据处理)领域的大牛和研究机构 总结(第二次修改)
- 深度学习时代的数据科学和自然语言处理-CSDN讲师-专题视频课程
- 数据结构课程总结
- MIT开发课程-计算机科学及编程导论-课程简介及数据类型-笔记
- 数据科学求职过程中总结的四点经验
- 数据结构课程总结
- R语言笔记之数据科学算法总结