1.PTA作业
1.1截图
1.2题目:快速寻找满足条件的两个数
1.2.1根据三种解法给出相应的代码,并给出测试数据。
输入数据 |
输出数据 |
5 1 2 3 6 9 |
2 3 |
8 4 5 6 9 45 556 3 87 1 |
5 3 |
输入数据 |
输出数据 |
3 1 2 6 |
1 2 |
5 13 6 3 2 8 |
|
输入数据 |
输出数据 |
3 1 2 5 |
1 2 |
5 4 5 1 6 8 |
1 4 |
1.2.2.请说明三种算法的区别是什么?你还可以给出更好的算法吗?
1:穷举法可以一一列举,比较简单,遇到大一点的数据运算量很大。
2:判断法加穷举,一定程度上比较稳定。
3:二分法将元素一分为二,通过中值比较,然后左右改变的方法,缩小范围,计算更便捷。
1.3请搜索有哪些排序算法,并用自己的理解对集中排序算法分别进行描述。
1.冒泡排序2.快速排序3.插入排序4.希尔排序5.选择排序6.堆排序7.归并排序
集中排序的算法 归并排序 归并排序也称合并排序,是分治法的典型应用,分治思想是将每个问题分解成个个小问题,将每个小问题解决,然后合并。
1.4请给出本周学习总结
1.4.1学习进度条
第几周 |
所用时间 |
代码行 |
知识简介 |
存在的问题 |
第一周 |
11小时 |
220 |
数据类型的复习,以及文件的学习 |
上课跟着考试学习还是勉强能理解,要自己一个人写啥都不会 |
第二周 |
13小时 |
310 |
学习数组中的一维数组,顺序查找法等 |
上课的东西还在消化,还是有许多的东西不会 |
1.4.2 累积代码行和博客字数
1.4.3 学习感悟和总结
冒泡排序是的算法:从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动,直到数组的末尾。就好比上课是的那道扑克排序一样,经过一轮的比较,就可以找到最大的元素,并将它移动到最后一个位置。
总结:越是学习到后面,就越显示基础知识的重要性,学到数组,让我觉得很有必要再重新学一下以前的基础知识去,去把以前那些没有做到的事情去重新做一遍,去多看一些关于C的视屏讲解,多看看教材。