Java新手的通病[1]:对算法和数据结构不熟悉

本文探讨了许多Java初学者对于数据结构与算法掌握不足的原因,并提出了几个基础问题来检验读者的理解程度,鼓励读者深入学习。

  为什么我先拿"数据结构和算法"说事捏?这玩意是写程序最最基本的东东。不管你使用Java还是其它的什么语言,都离不开它。而且这玩意是跨语言的,学好之后不管在哪门语言中都能用得上。
  既然"数据结构和算法"这么重要,为什么很多Java新手却很不熟悉捏?我琢磨了一下,估计有两种可能。有些人虽然是计算机系毕业的,但是当初压根没好好学过这门课程,到工作时早都还给老师了;还有一些人是中途转行干编程,转行后又没有好好地打基础(都指望速成)。
  下面我列出几个很基本的问题,如果你每一个问题都搞得很清楚,那说明你过了这关,可以去看看下一个帖子了。否则的话,你赶紧去找本算法和数据结构的书恶补一下吧。

  ★什么时候该用数组型容器、什么时候该用链表型容器?
  ★什么是散列函数?HashMap的实现原理是什么?
  ★什么是递归?如果你以前从来没写过递归函数,尝试着写一个(比如用递归函数进行目录树遍历)。
  ★什么是算法复杂度?
  ★你是否理解空间换时间的思想?
  ★写一个针对整数数组的冒泡排序函数,看看你要修改几次才能跑通。
  ★写一个针对整数数组的二分查找函数,看看你要修改几次才能跑通。

  后面接着说第2个通病:缺乏面向对象的基本功

http://program-think.blogspot.com/2009/01/defect-of-java-beginner-1-algorithm.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值