数据结构算法有什么用?
当你用着java里面的容器类很爽的时候,你有没有想过,怎么ArrayList就像一个无限扩充的数组,也好像链表之类的。
好用吗?好用,这就是数据结构的用处,只不过你在不知不觉中使用了。只不过java已经帮你实现了
经典语段:
如果说 Java 是自动档轿车,C 就是手动档吉普。数据结构呢?是变速箱的工作原理。
你完全可以不知道变速箱怎样工作,就把自动档的车子从 A 开到 B,而且未必就比懂得的人慢。
写程序这件事,和开车一样,经验可以起到很大作用,但如果你不知道底层是怎么工作的,就永远只能开车,既不会修车,也不能造车。
如果你对这两件事都不感兴趣也就罢了,数据结构懂得用就好。但若你此生在编程领域还有点更高的追求,数据结构是绕不开的课题。
Java 替你做了太多事情,那么多动不动还支持范型的容器类,加上垃圾收集,会让你觉得编程很容易。
但你有没有想过,那些容器类是怎么来的,以及它存在的意义是什么?
最粗浅的,比如 ArrayList 这个类,你想过它的存在是多么大的福利吗——一个可以随机访问、自动增加容量的数组,这种东西 C 是没有的,要自己实现。但是,具体怎么实现呢?如果你对这种问题感兴趣,那数据结构是一定要看的。甚至,面向对象编程范式本身,就是个数据结构问题:怎么才能把数据和操作数据的方法封装到一起,来造出 class / prototype 这种东西?编程问题基本上都可以引申为数据结构的使用
数据结构与算法意味着一个程序员的基础水平。是编程思想的核心。
要想成为一个专业的开发人员,至少需要以下三个条件:
1.能够熟练地选择和设计各种数据结构和算法。
2.至少要能够熟练地掌握一门程序设计语言。
3.熟知所涉及的相关应用领域的知识。
数据结构贯穿程序设计的始终。