java培训_数据结构和算法那个重要?

  java培训前两天一枚Java小鲜肉问:小编,Java中数据和算法哪个重要?回答明白这个问题,我觉得还是先要解决几个生活中常见的问题

  大胸和美腿哪个重要?

  老婆和老婆同时掉河里先救谁?

  詹姆斯和库里谁更厉害?

  林志玲和舒淇谁更性感?

  你 的 答 案

  都重要 都要救 都厉害 都性感

  所以Java中数据和算法

  同 样 重 要

  其实这个问题等价于,搬砖需不需要学物理。

  如果只干搬砖砌墙的活,熟练掌握工具那也就够了。但是要想设计建筑的话,还是要学很多东西的。

  程序=数据结构+算法

  在Java中算法和数据结构的重要性是毋容置疑的,在实际应用中了解各种底层技术的原理很重要,不仅仅是算法、数据结构,还包括数据结构、通信协议、文件系统、驱动等,掌握技术原理才可以从根本上优化你的代码。就如,虽然你不设计制造汽车,但如果你了解发动机、变速器、安全气囊等几项原理,对于你驾车如何省油、延长使用寿命、保证自身安全有很大好处。虽然自己不写那些东西,但是了解其原理对于排错、优化自己的代码有很大帮助。

  对开发者而言语言只是工具,算法才是灵魂,其实面向对象的话,语言都差不多的。数据结构和算法对于高级程序员来说肯定是很重要的。

  计算机学科越是基础的东西越重要。工具类的知识只要你肯花时间,总是能够学会的,而思想你却不一定能学得会。

  偏偏越底层越基础的东西,才是最有价值的。

  上层的东西总是会死的,无论他现在多么牛。

  对于,有灵魂的程序员而言,数据结构和算法更重要!

时间: 2024-10-19 23:29:49

java培训_数据结构和算法那个重要?的相关文章

程序员书单_数据结构和算法篇

大话数据结构 程杰 著 http://download.csdn.net/detail/shenzhq1980/9145645Java数据结构和算法.(第二版) http://download.csdn.net/detail/shenzhq1980/9145633

Java面向对象_数据结构之链表

链表:是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里村到下一个节点的指针. 在链表数据结构中,需要使用到递归算法.递归算法是一种直接或间接地调用自身算法的过程. 1 public class Practice14 { 2 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 jiecheng(5); 6 System.out.println(j

Java培训_三元运算符最终结果的数据类型

3.三目运算:三元表达式 条件?结果1:结果2 a>b?a:b//如果a>b成立,结果为a,否则结果为b a和b到底以何种类型输出: public class Task { public static void main(String[] args) { char a = 'b'; int  b = 8; System.out.println(false?a:b);//8 System.out.println(false?a:8);//字符 System.out.println(false?8

程序员的进阶课-数据结构与算法

现在市面上的数据结构与算法的教程也都不少,但有两个问题,第一是泛泛而谈,第二是基本都是c语言实现,而java作为第一主流语言,理应有它自己的独到之处.这也是我写这些博客的初衷,我会讲解java实现的数据结构和算法. 至于说为什么要学习数据结构和算法,我相信大家都应该清楚.大家平时的工作,敲的业务代码,都属于外功,可以帮你轻松地完成老板交待的工作,每个月能挣到属于自己的那份钱.但我不知道小伙伴们有没有这样的困境,工作三到五年,项目做了很多,但自己的能力始终处于二流水平,写业务代码,没点问题:想跳槽

Java数据结构和算法之递归

四.递归 递归是函数调用自身的一种特殊的编程技术,其应用主要在以下几个方面:   阶乘 在java当中的基本形式是: Public  void  mothed(int n){//当满足某条件时: Mothed(n‐1): } 递归二分查找 Java二分查找实现,欢迎大家提出交流意见.  /** *名称:BinarySearch *功能:实现了折半查找(二分查找)的递归和非递归算法. *说明: *     1.要求所查找的数组已有序,并且其中元素已实现Comparable<T>接口,如Integ

【Java数据结构学习笔记之二】Java数据结构与算法之队列(Queue)实现

  本篇是数据结构与算法的第三篇,本篇我们将来了解一下知识点: 队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列应用的简单举例 优先队列的设置与实现双链表实现 队列的抽象数据类型   队列同样是一种特殊的线性表,其插入和删除的操作分别在表的两端进行,队列的特点就是先进先出(First In First Out).我们把向队列中插入元素的过程称为入队(Enqueue),删除元素的过程称为出队(Dequeue)并把允许入队的一端称为队尾,允许出的的一端称为队头,没有任何元素的队列

Java数据结构和算法(二)——数组

数组的用处是什么呢?--当你需要将30个数进行大小排列的时候,用数组这样的数据结构存储是个很好的选择,当你是一个班的班主任的时候,每次要记录那些学生的缺勤次数的时候,数组也是很有用.数组可以进行插入,删除,查找等. 1)创建和内存分配 Java中有两种数据类型,基本类型和对象类型,也有人称为引用类型,Java中把数组当成对象,创建数组时使用new操作符. int array[] = new int[10]; 既然是对象,那么array便是数组的一个引用,根据Java编程思想(一) -- 一切都是

Java数据结构与算法之集合

线性表.链表.哈希表是常用的数据结构,在进行Java开发时,SDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些类均在java.util包中. 一.Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object.一些Collection允许相同元素而另一些不行.一些能排序而另一些不行.Java  SDK不提供直接继承自Collection的类,Java  SDK提供的类都是继承自Collection的"子接口"如List和Set

Java数据结构和算法之栈与队列

二.栈与队列 1.栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表. (1)通常称插入.删除的这一端为栈顶(Top),另一端称为栈底(Bottom). (2)当表中没有元素时称为空栈. (3)栈为后进先出(Last In First Out)的线性表,简称为LIFO表. 栈的修改是按后进先出的原则进行. 每次删除(退栈)的总是当前栈中"最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除. 图1 [示例]元素是以a1,a2,-,a