最近没有来写了,忙着考研啊,日子再也没有以前轻松了,技术学的时间也不是很多了,只有自己有空的时候随便摸
索一下了。
这次来回忆一下JAVA 中的算法,对于一个算法的好坏,我觉着这是一个比较值得注意的地方,评价一个算法要从多方
面去考虑,主要从以下几个方面去考虑:
n 1.正确性(结果要正确,注意边界值)
2.结构性(每一块空两格或四格)
3.可读性(命名合理,书写规范,表达式不要太 复杂,要有注释)
4.时间复杂度(尽量低,注意循环语句)
5.空间复杂度(尽量低,注意变量的使用)
接下来就是几个常见的算法了,别以为这些都很简单,有时候去公司面试时,考官通常会给你一个很简单的问题,但
是就是这个问题却恰恰能够反映出你的编程思想。我在一个网站看到这么一个问题:
打印1到100,其中遇到3的倍数打印TT,遇到5的倍数打印HH,既是3又是5的倍数打印TTFF。
这个很简单吧,但是真正到了考场上并不一定就能很快的想出来。
下面简单介绍一下算法:
1.枚举算法,也叫 “ 穷举法 ” ,使用很广泛。基本思想是将所有可能的解都列举出来,然后代入进行演算,符合条
件的解,即为所求的结果。
2.递推和迭代算法常用在数列问题中。关键是找到公式,公式找到 了,程序很容易实现。
3. 递归就是把函数或过程不断地自我调用。递归在解决某些问题中,可以使某些看起来不易解决的问题容易解决,写出
的程序较简短。但是 递归也有自身的缺点,运行时间长,占用存储空间多。
其他就有高精度算法和进制转换的算法了。下面出几个问题,各位友人有空的时候可以做一下吧。
1 :有 N(N>=3) 位同学去照相,每次照三个同学,共可照出多少 张不全相同的照片?每张照片中都是谁?
2: 买菜问题:小明有 1 元 5 角钱,去菜场买菜,西红柿 3 分钱 1 斤,黄瓜 5 分钱 1 斤,土豆 7 分钱 1 斤
,问小明把钱全部花完,三 种菜各买几斤?
3 :有一堆游戏棒,第一个参加游戏的人取走了一半多一根,第 二个游戏者再将剩下的取走一半多一根,依此类推,到
第十个 人来取时,发现只剩下一根了。问游戏开始前这堆游戏棒共有 多少根。
4 :数列问题:有一数列 A(N) 的前几项是 1,1,2,3,5,8, 13, … ,已 知后一项和前两项有某种关系,试编程求出前
15 项的和,并将 这个数列输出。
加油!
posted on 2007-03-29 22:25
zxc 阅读(341)
评论(0) 编辑 收藏