随着技术的更新,计算机方面的技术,尤其是JavaWeb方向,发生了翻天覆地的变化,97年出现的Servlet,以及99年JSP的问世,依然不能满足企业级开发(专指web开发)的需要,各种新技术和新框架层出不穷。。。
一时间,对框架的狂热,使得一些程序员(尤其是java初学者),不知所措,在框架的学习上,不深入,仅仅停留在简单应用上,这恰恰忽略了一个重要问题。事实证明大公司的招聘考题中,算法的题目不在少数,算法是最能反映一个人编程技巧和逻辑思维水平的。
凡是学过一点计算机的人大概都知道“程序=算法+数据结构”这一著名公式。(Pascal之父——Nicklaus Wirth)
由次可见,算法对于程序设计的重要性。那么是什么算法呢?
算法是指解决问题的步骤和方法。
一般来说,算法应具有以下特性:
1、有穷性: 一个算法必须保证执行有限步之后结束;
2、确切性: 算法的每一步骤必须有确切的定义;
3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;
4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
5、可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
算法的应用范围:所有程序
那下面我就抛个砖,大家尽管把玉扔过来。
题目1:(题目由易到深,先来个简单的试试手)
今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?- (已解决)
--《孙子算经》
题目2:
有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。(已解决)
题目3:
在文本文件readme.txt中,存放数据如下(数据列之间用,隔开) (未解决)
s001,郭靖,20,江南
s002,金毛狮王,25,冰火岛
s003,南帝,40,云南大理
s004,黄蓉,22,桃花岛
s005,风清扬,24,华山
s006,洪七公,60,丐帮
s007,张三丰,22,太极
s008,杨过,26,古墓
s009,小龙女,28,古墓
s010,张无忌,30,明教
…
要求:1:查询年龄最大的学员信息
2:请勿借助数据库来完成实现
(请大家先考虑考虑如何使用程序语言来实现,10楼后公布答案)
[ 本帖最后由 eclipse 于 2008-7-22 16:41 编辑 ] |