各位好,我是一名在校大学生。我比较偏向于网络方面的开发,比如web开发,还有一些和网络比较相关的软件,像聊天软件之类的,甚至一些黑客性软件。 

前段时间自己做留言簿练手,发现,其实很多时候我根本不怎么用到算法,像排序这类比较基本的算法甚至都不需用到。 

我想问下,真正工作时的软件开发,一般都可能用到哪些算法呢?多复杂的算法? 
比较类似于AI的算法[color=C0C0C0](我自己认为它们接近于AI了,一般在游戏中比较常见,像人机五子棋之类的算法)[/color]: 
一般是先设定某个(些)要求,然后设计一个算法,用户输入数据后,根据之前的要求判断可行性或做出符合之前规定的输出行为[color=808080](比如: 
例:卡1的数字是1和2   卡2的数字是2和3,那么卡1和卡2就可以相接. 
如果有如下卡: 
1-2   3-2   4-6   3-4   6-5 
那么可以排成如下   1-2   2-3   3-4   4-6   6-5 
卡与卡之间的数是一样的. 
请你编一道程序,输入的是卡中的号,请你按规则,得到排序后的结果 
只需打印出其中一个,如果无法排,请打印出"没有办法!"...) [/color]
这样的算法会常用到吗?如果会一般是什么类型的软件比较常用到? 
由什么类型的程序员(系统设计师?)完成这类算法设计? 

我的算法能力向来不是很好,数学也是我的弱项,我很是担心这个问题。 
我比较喜欢模块性的软件开发,就是能快速开发出完成某种功能(比如供人留言的留言簿、论坛;播放程序、下载程序等)的程序,而且我也觉得它们不怎么用到很复杂的算法(是这样吗?)。 

我该怎么办?很是迷惑啊