C语言——数组作业批改
一、评分规则
- 1.PTA得分,题数少于总体数的2/3,扣两分
- 2.学习总结简单扣分,总分3分
- 3.第三部分,代码比较写太泛,简单应付扣分,伪代码没写或有待改进,扣分。总分6分
二、本次作业总结
2.1总体分析
这次的扣分主要在于大家对代码之间的比较和代码的分析,作为一名程序员,阅读别人的代码以及吸收别人代码中优秀的部分,这是必不可少。大家在分析的时候,总是会写我的代码和某位同学的差不多,那么我有一个疑问,如果差不多,何必写下来呢,他有的你都有,写下来的意义何在,老师出这个题目的意义就是为了让你们不仅要学会看代码,并学在这个过程中还要学会分析,很多同学直接潦草一两句带过,这样的话,其实只是在浪费你们的时间,还有就是伪代码的部分,这次可能是第一次让大家写,所以写出来的效果可能并没有那么理想。第二的话,就是学习总结部分,和几个同学聊过,也猜到大家还是那么的忙,事情还是那么的多,所以总结部分并没有很认真写,所以针对代码分析和伪代码的部分以及学习总结的部分,大家可以看一下下面两位同学。
2.2优秀博客推荐
-
推荐博客:林进源
进源同学的学习总价值得大家学习,里面包括了很多大家最近学习的重要知识点,比如增删查三种动作每一种都有不一样的方法,是复习的时候很好的材料,而且很多做法也都比价经典,值得大家学习。
-
推荐博客:黄静
黄静同学的代码分析部分可以看出来是真的用心了,相比于大家的差不多和一两句带过的方式,可以看出她总结了知识点,并且对老师和同学、自己的代码都做了各自的分析,并且伪代码部分,大家可以学习一下,简单明了,伪代码不是给代码增加注释的过程,大家可以学习一下黄静同学。
助教寄语
林智凯
首先要先强调的是编码规范的问题,编码规范是需要长期去培养的重要技能,不仅仅是自己看着爽,我们的代码往往是开源或者需要和别人分享的。后面大家写大的程序基本上不会是自己单干,而是和组员进行合作,想想如果你的组员拿了一份没有缩进、奇怪的变量名、没有封装函数等奇怪的代码,这是一件多么刺激的事情啊。所以为了自己,为了大家,我们都要一起练习编码规范,缩进、变量见名知意等都是很基本的要求,希望大家能尽力去做到。把一个编码混乱的代码改成整洁的代码,我相信不需要很久,值的维护的代码的前提条件就是整洁。
第二是描述算法思路,我们经常会使用伪代码或者流程图。我个人的习惯是,遇到代码量大的程序时,使用流程图来描述程序的工作流程会比较直观。描述算法的时候,我更倾向于用伪代码,因为伪代码的逻辑性比较强,好的伪代码会比流程图更适合描述算法。不过我自己大一的时候写的伪代码也是不能看的,所以还是希望大家可以多多练习,多读一些优秀的伪代码。出个馊主意,可以去看一些论文的伪代码,敢放上论文的伪代码都比较整洁。伪代码还有一种写法,也很清晰,大家也可以模仿一下。
对于所学的知识,大家需要着重掌握二分查找和哈希的初步使用。首先是二分查找,我们需要着重理解二分的思想,二分的思想很简单,但是可以延伸的内容非常多。为什么提出二分?因为很多问题在二分的条件下去求解,可以保证平均情况下的开销最小,使用二分往往是为了降低算法的时间复杂度。后面我们还会频繁地接触二分,例如二叉搜索树就是基于二分的搜索问题的解空间树,还有在概率上达到二分的链表——跳跃表,以及三分查找和插值分查找等变种算法。总而言之,遇到二分的情景不要草率地认为自己已经会了,好好地理解往往会有意外惊喜。
接触哈希主要是 PTA 的重复数字问题,我相信大部分同学都会遇到超时问题。这是因为蛮力法的思路简单,编码比较简洁,加上我们之前学过了循环,很容易就可以写出用二重循环进行搜索的代码。但是考虑一下这种方法,会发现存储数字的数组中的元素,会被我们重复地遍历。所以这种算法是在大量的解中寻找可行解,如果重复的数字在数组的末尾,并且数组很长,非常容易超时。一种优化的思路是我们每个元素的匹配,都尽可能地减少对数组后面的元素的访问的次数。
不过这种思路继续想下去,会是一个比较复杂的问题,这个时候不妨把思路逆转过来。一开始我们的思路是找到 2 个重复的数字,一门心思都去考虑数字的问题了,其实也可以从 “2”入手。换言之,我们没必要去找重复的数据,可以直接去统计数组中每个出现元素的个数,如果某个元素统计了 2 次以上,就说明了是重复的数据,这样我们就把一个搜索问题转变为统计问题。进而通过老师的讲解,学习了这就是所谓的“哈希”的用法。
李悦
转眼就快要期末了,从开始的helloWord到现在,可以说是成长了许多,但是学习这些知识还是远远不够,不管怎么样接下来的日子还是要继续努力,不要松懈,平时可以多去阅读网上的优秀代码,了解别人是如何编写代码的。学有余力的同学可以去尝试一些新的事物,开阔自己的眼界。
苏雅琴
从图可以看出来,这次的情况并没有非常的理想,将近2/3的同学成绩不理想,从开学到现在,马上大家也将迎来大家在大学里的第一次大考,大一生活也将过去半年,如果感觉自己还是停留在开学的那个阶段,那就要加把劲了,很多东西如果没有逼自己一把,到后面去补的时候,就没有了当初那种动力,这样和别人的差距或许一天看不出,但是到后来的某一天,自己会后悔当初的自己。从高中到大学这个过渡,感觉大家似乎还是没有学会在大学里如何学习和摸索,大学重要的是自觉和自学,自觉学习,自觉懂得何如学习才能高效,这都是摸索出来的,所以希望大家加把劲,最后祝愿大家期末复习顺利,好好考试。