算法与数据结构

数据结构与算法| 复杂度分析

夙愿已清 提交于 2019-12-04 19:06:33
是什么:   数据结构指的是“一组数据的存储结构”,算法指的是“操作数据的一组方法”。   数据结构是为算法服务的,算法是要作用在特定的数据结构上的。 为什么要用:   使用合适的数据结构和算法。选用合适的数据结构和算法,特别是在处理体量非常庞大的数据的时候,可以极大提高计算效率。 20 个最常用的、最基础 数据结构与算法:   10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;   10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。 在学习数据结构和算法的过程中, 学习它的“来历”“自身的特点”“适合解决的问题”以及“实际的应用场景”,辩证地思考,多问为什么。 。 效率和资源消耗的度量衡---复杂度分析。 如何分析、统计算法的执行效率和资源消耗?   数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。 使用 时间、空间复杂度分析 来衡量你编写的算法代码的执行效率。  学习数据结构和算法的基石,就是要学会`复杂度分析`。知道怎么去分析复杂度,才能作出正确的判断,在特定的场景下选用合适的正确的算法。 通过统计、监控,就能得到算法执行的时间和占用的内存大小--(这种叫事后统计法,它有很大局限性)

20182301 2019-2020-1 《数据结构与面向对象程序设计》实验7报告

隐身守侯 提交于 2019-12-04 18:43:11
20182301 2019-2020-1 《数据结构与面向对象程序设计》实验7报告 课程:《程序设计与数据结构》 班级: 1823 姓名: 赵沛凝 学号:20182301 实验教师:王志强 实验日期:2019年11月1日 必修/选修: 必修 1.实验内容 定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位,提交运行结果图。 重构你的代码 把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1823.G2301)把测试代码放test包中,重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种) 参考http://www.cnblogs.com/maybe2030/p/4715035.html ,学习各种查找算法并在Searching中补充查找算法并测试,提交运行结果截图 补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个) 测试实现的算法(正常,异常,边界),提交运行结果截图(如果编写多个排序算法,即使其中三个排序程序有瑕疵,也可以酌情得满分)

20182318 2019-2020-1 《数据结构与面向对象程序设计》实验起报告

萝らか妹 提交于 2019-12-04 18:35:24
20182318 2019-2020-1 《数据结构与面向对象程序设计》实验起报告 课程:《程序设计与数据结构》 班级: 1823 姓名: 王振澳 学号:20182318 实验教师:王志强 实验日期:2019年11月02日 必修/选修: 必修 1.实验内容 定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。 重构你的代码 学习各种查找算法并在Searching中补充查找算法并测试 补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个) 编写Android程序对实现各种查找与排序算法进行测试 2. 实验过程及结果 实验一 实验二 实验三 实验四 3. 实验过程中遇到的问题和解决过程 问题1:问题1:使用命令行的时候不能调用包 问题1解决方案:更改路径,把所有代码放在一个文件夹下,可以正常运行 问题2:什么是波斐那契查找 问题2解决方案:查找要先从斐波那契数列开始。斐波那契数列从第3项开始,每一项都等于前两项之和。即F(n)=F(n-1)+F(n-2)。 斐波那契查找:也叫黄金分割法查找。就是在二分查找的基础上根据斐波那契数列进行分割的。在斐波那契数列找一个等于略大于查找表中元素个数的数F[n],将原查找表扩展为长度为Fn,完成后进行斐波那契分割,即F[n]个元素分割为前半部分F[n-1

20182326 2019-2020-1 《数据结构与面向对象程序设计》实验七报告

China☆狼群 提交于 2019-12-04 18:21:40
20182326 2019-2020-1 《数据结构与面向对象程序设计》实验七报告 课程:《程序设计与数据结构》 班级: 1823 姓名: 刘颖洁 学号:20182326 实验教师:王志强 实验日期:2019年11月4日 必修/选修: 必修 1.实验内容 1.定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。 要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位 提交运行结果图。 2.重构你的代码 把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1823.G2301) 把测试代码放test包中 重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种) 3.参考http://www.cnblogs.com/maybe2030/p/4715035.html ,学习各种查找算法并在Searching中补充查找算法并测试 提交运行结果截图 4.补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个) 测试实现的算法(正常,异常,边界) 提交运行结果截图(如果编写多个排序算法,即使其中三个排序程序有瑕疵

20182323 2019-2020-1 《数据结构与面向对象程序设计》实验七报告

a 夏天 提交于 2019-12-04 18:17:39
学号20182323 2019-2020-1 《数据结构与面向对象程序设计》实验七报告# 学号20182323 2019-2020-1 《数据结构与面向对象程序设计》实验七报告 课程:《程序设计与数据结构》 班级: 1823 姓名: 曹骞 学号: 20182323 实验教师:王志强 实验日期:2019年10月21日 必修/选修: 必修 1.实验内容 1.定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。 要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位 提交运行结果图。 2.重构你的代码 把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1823.G2301) 把测试代码放test包中 重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种) 3.参考http://www.cnblogs.com/maybe2030/p/4715035.html ,学习各种查找算法并在Searching中补充查找算法并测试 提交运行结果截图 4.补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个) 测试实现的算法

20182309 2019-2020-1 《数据结构与面向对象程序设计》实验七报告

不想你离开。 提交于 2019-12-04 17:57:09
20182309 2019-2020-1 《数据结构与面向对象程序设计》实验七报告 课程:《程序设计与数据结构》 班级: 1823 姓名: 董其鹏 学号: 20182309 实验教师:王志强 实验日期:2019年11月2日 必修/选修: 必修 1.实验内容 定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。 重构你的代码 学习各种查找算法并在Searching中补充查找算法并测试 补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个) 编写Android程序对实现各种查找与排序算法进行测试 2. 实验过程及结果 3. 实验过程中遇到的问题和解决过程 问题1:使用命令行的时候不能用包 问题1解决方案:把所有代码放在一个文件夹下,可以正常运行 问题2:斐波那契查找 问题2解决方案:其实这是另一种二分查找,只是二分的位置不一样。 其他 排序和查找是一起的,通常是先排序再查找。 要注意排序方法的稳定性(相同字符先后顺序无论何时都不变)。 递归方法要比非递归方法简单。 参考资料 《Java程序设计与数据结构教程(第二版)》 《Java程序设计与数据结构教程(第二版)》学习指导 来源: https://www.cnblogs.com/blueflameashe/p/11876298.html

20182303 2019-2020-1 《数据结构与面向对象程序设计》实验7报告

☆樱花仙子☆ 提交于 2019-12-04 17:51:16
20182303 2019-2020-1 《数据结构与面向对象程序设计》实验7报告 课程:《程序设计与数据结构》 班级: 1823 姓名:张端云 学号:20182303 实验教师:王志强 实验日期:2019年10月30日 必修/选修: 必修 实验内容 定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。 要求:不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位。 提交运行结果图。 重构你的代码 把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中; 把测试代码放test包中,重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种)。 参考 http://www.cnblogs.com/maybe2030/p/4715035.html ,学习各种查找算法并在Searching中补充查找算法并测试,提交运行结果截图。 补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个),测试实现的算法(正常,异常,边界),提交运行结果截图。 编写Android程序对实现各种查找与排序算法进行测试,提交运行结果截图,推送代码到码云(选做)。 实验过程及结果

20182332 《数据结构与面向对象程序设计》实验七报告

百般思念 提交于 2019-12-04 17:43:51
20182332 《数据结构与面向对象程序设计》实验七报告 课程:《程序设计与数据结构》 班级: 1823 姓名: 盛国榕 学号:20182332 实验教师:王志强 实验日期:2019年10月28日 必修/选修: 必修 1.实验内容: 定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位提交运行结果图。 重构你的代码把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1823.G2301),把测试代码放test包中重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种) 参考http://www.cnblogs.com/maybe2030/p/4715035.html ,学习各种查找算法并在Searching中补充查找算法并测试,提交运行结果截图。 补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个),测试实现的算法(正常,异常,边界)提交运行结果截图(如果编写多个排序算法,即使其中三个排序程序有瑕疵,也可以酌情得满分)

数据结构与面向对象程序设计》实验8报告

爱⌒轻易说出口 提交于 2019-12-04 17:42:53
学号 20182329 2019-2020-1 《数据结构与面向对象程序设计》实验8报告 课程:《程序设计与数据结构》 班级: 1823 姓名: 李一卓 学号:20182329 实验教师:王志强 实验日期:2019年10月16日 必修/选修: 必修 1.实验内容 自己根据链的结构,编写一个二叉树。 创建NODE的ATD结构,以及Link的ATD结构以适应树的建立。 学会使用树的先序遍历、中序遍历、后序遍历,来查找、后者是建立树。 学习决策树的的定义和实现方法,可以参照完全二叉树的建立。 实验四也就是用中缀表达式建立一棵树,用后缀表达式输出。 2. 实验过程及结果 参考教材PP16.1,完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorder)用JUnit或自己编写驱动类对自己实现的LinkedBinaryTree进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息 基于LinkedBinaryTree,实现基于(中序,先序)序列构造唯一一棵二㕚树的功能,比如给出中序HDIBEMJNAFCKGL和后序ABDHIEJMNCFGKL,构造出附图中的树 用JUnit或自己编写驱动类对自己实现的功能进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息 自己设计并实现一颗决策树 输入中缀表达式

20182320 2019-2020-1 《数据结构与面向对象程序设计》实验7报告

邮差的信 提交于 2019-12-04 17:34:26
20182320 2019-2020-1 《数据结构与面向对象程序设计》实验7报告 课程:《程序设计与数据结构》 班级: 1823 姓名: 郑力元 学号:20182320 实验教师:王志强 实验日期:2019年11月1日 必修/选修: 必修 1.实验内容 1.1 定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。 要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位 提交运行结果图。 1.2 重构你的代码 把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1823.G2301) 把测试代码放test包中 重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种) 1.3 参考http://www.cnblogs.com/maybe2030/p/4715035.html ,学习各种查找算法并在Searching中补充查找算法并测试 提交运行结果截图 1.4 补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个) 测试实现的算法(正常,异常,边界) 提交运行结果截图(如果编写多个排序算法