第二章实践小结
第二章实践是求两个集合的交集,首先我在这次实践中学到的是sort函数,利用sort函数对一个数组进行排序方便很多,因为以前是自己写一个子函数调用来排序。sort函数的用法是我百度的,这也说明了平时遇到难题的时候,要先学会自己去想办法解决问题,不行再去问别人。
然后就是归并排序,在做这道题的过程中还参考了归并,也知道了归并排序这种方法。而我在这次实践中的问题是每个数组都有十万个数的时候会超时,我一开始写的是这样的:
这种方法的时间复杂度是O(mn),用的时间很长所以必须要想办法缩短时间。最后我的做法是在一开始就把两个数组放到一个大数组里面,再对该数组进行排序,然后比较这个数组相邻两个数是否相等,然后就可以求出交集,这是我最后的方法:
这个方法的时间复杂度是O(m+n)。
这个方法是我问同学得出来的,这和嘉骏同学在群里提出来的差不多,这个方法比我一开始的方法好很多,节约了很多时间,做法也简单很多。所以我觉得在平时做题的时候,要多想想用什么办法比较好,多想一些办法,并且去比较这些方法的优缺点,多积累。在上课的时候,也有很多同学提出了很多很好的办法,比如说插入排序等等,大家的想法都有各自的优点,所以要多思考,多看看别的同学是怎么做的,不断改进自己的办法,才能有进步。