博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Princeton Algorithms week3 Assignment
阅读量:6836 次
发布时间:2019-06-26

本文共 813 字,大约阅读时间需要 2 分钟。

这周编程作业是实现检测点共线的算法排序算法有关系的地方在于,对斜率排序后可以很快的检测出来哪些点是共线的,另外这个算法的瓶颈也在于排序的性能。

一点收获:

java传参数时传递的是值这很多人都知道只不过特别要注意的是对于引用类型传递的是“引用的值”也就是说传递的是指针的副本因此虽然似乎把一个数组传递进去了但只要其他地方改动了这个数组函数内部也会被影响同理返回值也是指针如果不拷贝一份再返回很有可能你在修改返回值的时候改动到了类的内部变量。 

自己还不太明白的地方:

循环内部除了排序还有很多很多操作这些相对于排序的时间复杂度不重要是因为当N很大很大时排序需要的时间ONlogN要远远大于你内部循环一遍O(N)和其他操作(常数级复杂度),所以说看时间复杂度还是要看循环内的操作。

总结一下:

编程时还是应该自己动手解决问题,太依赖论坛里的解答或者轻易问同学就等于自己放弃了学习的机会。刘未鹏老师在“为什么遇到问题要自己动手解决”里面已经讲的很清晰了,有时你心里清楚这个问题请做完作业的同学给你简单说两句,就马上可以解决(真的很诱惑呀,谁不想最快的速度写完作业呢?)可是如果你问了,下次遇到类似的问题你还是不会,因为你没有经历那个一点点琢磨明白这个知识点的过程,你就做到不到对这个知识点了然于心,下次用起来就不顺手。心理学上有一个“记忆的存储提取速度成反比”的现象,一个东西你理解它的时候越费劲,到用的时候越容易想起来。

另外,面对困难,坚持想办法,不断搜索,尝试,琢磨...这整个过程是很磨练人的耐性的。尤其是物理专业转计算机的学生,很多比较“怵”需要动手的东西,写程序这个过程就是一个训练自己心态的过程,只有不断积累写程序调程序的经验,才能让自己在面对困难的时候,坚持的时间更长一些。

转载于:https://www.cnblogs.com/liulinblog/p/6254233.html

你可能感兴趣的文章
C++中清空缓冲区
查看>>
html 空白汉字占位符 
查看>>
Linux学习之文件特殊权限详解(SetUID、SetGID、Sticky BIT)(十一)
查看>>
VS2010 打开 VS2012 的项目
查看>>
celery定时器以及出错解决方案Celery Received unregistered task of type
查看>>
canvas toDataURL() 方法如何生成部分画布内容的图片
查看>>
Android 多用户模式原理和实现介绍
查看>>
android:largeHeap介绍
查看>>
Android四大组件之Service浅见
查看>>
IIS6不重启改应用程序.net framework 4.0的方法
查看>>
c++编程:获取控件上的文本值---例子是CEdit 的七种方法(转载)
查看>>
常见设计模式
查看>>
【转载】TransactionScope只要一个操作失败,它会自动回滚,Complete表示事务完成...
查看>>
1016 因子之和
查看>>
java基础------函数与数组
查看>>
PHP 下载文件&获取文件内容
查看>>
android Launcher——ui框架
查看>>
那些低调的美国互联网金融公司
查看>>
iOS-集成极光推送
查看>>
[下载地址] Emmet前端必备 - 插件配置附手册
查看>>