java数据结构与算法,学习java的时候,数据结构和算法设计很重要么?我想花大量时间研究下,可行性怎么样?
java数据结构与算法,学习java的时候,数据结构和算法设计很重要么?我想花大量时间研究下,可行性怎么样?详细介绍
本文目录一览: 数据结构与算法是不是通用的呀?可以应用在C,C++.JAVA上??
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
我说的意思是:是不是只要学会了数据结构与算法,就可以应用在C,C++.JAVA上,
而不分C的结构与算法,C++的结构与算法和java的结构与算法呀?
正打算学,所以相问问大家??
解析:
数据结构和算法是计算机编程的核心。
数据结构是由若干特性相同的数据元素构成的 *** ,且在 *** 上存在一种或多种关系。由关系不同可将数据结构分为四类:线性结构、树形结构、图状结构和 *** 结构。数据的存储结构是数据逻辑结构在计算机中的映象,由关系的两种映象方法可得到两类存储结构:一类是顺序存储结构,它以数据元素相对的存储位置表示关系,则存储结构中只包含数据元素本身的信息;另一类是链式存储结构,它以附加的指针信息(后继元素的存储地址)表示关系。
数据结构的操作是和数据结构本身密不可分的,两者作为一个整体可用抽象数据类型进行描述。抽象数据类型是一个数学模型以及定义在该模型上的一组操作,因此它和高级程序设计语言中的数据类型具有相同含义,而抽象数据类型的范畴更广,它不局限于现有程序设计语言中已经实现的数据类型(它们通常被称为固有数据类型),但抽象数据类型需要借用固有数据类型表示并实现。抽象数据类型的三大要素为数据对象、数据关系和基本操作,同时数据抽象和数据封装是抽象数据类型的两个重要特性。
算法是进行程序设计的另一不可缺少的要素。算法是对问题求解的一种描述,是为解决一个或一类问题给出的一种确定规则的描述。一个完整的算法应该具有下列五个要素:有穷性、确定性、可行性、有输入和有输出。一个正确的算法应对苛刻且带有刁难性的输入数据也能得出正确的结果,并且对不正确的输入也能作出正确的反映。
算法的时间复杂度是比较不同算法效率的一种准则,算法时间复杂度的估算基于算法中基本操作的重复执行次数,或处于最深层循环内的语句的频度。算法空间复杂度可作为算法所需存储量的一种量度,它主要取决于算法的输入量和辅助变量所占空间,若算法的输入仅取决于问题本身而和算法无关,则算法空间复杂度的估算只需考察算法中所用辅助变量所占空间,若算法的空间复杂度为常量级,则称该算法为原地工作的算法。
由上可知,算法和数据结构通用于各种语言。
其实你可以多找几本算法和数据结构的书来学习,就会发现所有的数据结构和算法都可以通过不同的编程语言来实现。
新手初学Java有必要去学习数据结构与算法吗
还是有些必要的,大公司笔试面试基本都是靠计算机网络及数据结构与算法。
建议找些基础的算法如排序查找等入门就可以了,java新人用不到多深层次的算法,
新人初学Java的话建议还是讲基础知识弄通弄透比较好。
还是有些必要的,大公司笔试面试基本都是靠计算机网络及数据结构与算法,建议找些基础的算法如排序查找等入门就可以了,java新人用不到多深层次的算法。千锋教育就有线上免费Java线上公开课。 但是如果是新手小白的话,建议还是报班培训。因为Java自学起来相对比较难,正确的学习资料的获取、学习中遇到的问题以及如何合理运用学到的知识等都是自学中常会遇到的问题,而且解决起来都比较花费时间,而培训机构有系统的教学体系和经验丰富的讲师,而且学习氛围很浓厚,相对自学而言会更容易一些。千锋教育就有线上免费Java线上公开课。但是要注意的是Java的培训机构良莠不齐,很多培训机构的目的其实就是赚钱,只管教,对学员是否学会并不关心。所以在选择培训机构的时候一定要慎重,要选择口碑良好、师资团队优秀、教学内容与时俱进的培训机构。综上自学Java要一年以上才能达到做项目的程度,而通过培训的话一般六个月左右就能达到做项目的程度。如果想了解Java更多相关知识,建议到千锋教育了解一下。千锋教育目前在18个城市拥有22个校区,年培养优质人才20000余人,与国内20000余家企业建立人才输送合作关系,院校合作超600所。
学习java的时候,数据结构和算法设计很重要么?我想花大量时间研究下,可行性怎么样?
如果只是简单地做一般性的应用,大可不必花大心思去学数据结构和算法设计。其一:这些与语言不相关;其二:这些都已经有现成的实现,自己直接调用就行。数据结构与算法设计的重要性体现在优化而不是实现,比如数据挖掘的各种算法实现。
个人觉得面向对象的高级编程语言就是数据结构+算法设计+语言的语法,前面两个是通用,有什么语言出来,熟悉语法就可以了,所以,答案是肯定的,很重要!
看你的java水平了,如果是初级水平,还是要把语法学号,至于数据结构和算法,在不同的行业领域里面使用层度不一样,能学习和研究一下是最好了,是在研究不清楚也没关系,毕竟大多数的行业里面还是用不到的。
java强调的面向对象设计,算法和数据结构强调过程。弄不好就会陷入而忽略对象的设计。
数据结构和算法说白了就是对时间和空间的平衡,换算。其中也有技巧。比如二叉树。还有模型栈列表。这些都需要懂。以便以后做需要优化的时候来查这些资料。
看你要干嘛了。但是对于所有编程语言来说,算法都是很重要的。
没有必要,我也学过算法与数据结构,还买了几本算法竞赛相关的书籍,不过在java中很少用到,不过也要学习一些简单的算法,如遍历,栈,队列,当然还包括递归算法,其实我觉得递归算法很重要,尤其是访问文件目录时。不过也无需深究。
中南大学943数据结构可以用java写算法题吗?
可以。中南大学943数据结构课程中可以使用Java语言来编写算法题。Java是一种常用的编程语言,在数据结构和算法的学习中广泛应用。使用Java编写算法可以方便地实现各种数据结构和算法,并进行调试和测试。
学java最重要的是学java的什么内容
你好,学习java只要掌握好方式和方法,其实学起来并不是非常难。比如你可以自学也可以选择机构学。
java是目前主流的开发语言,程序员不论是大数据、云计算、web前端、后端开发等都需要从java学起,如果你想计入IT高薪行列,建议学java!
java学的内容主要有:
①JAVA编程基础(基础语法、面向对象、和谐特性等)
②WEB应用开发(静态网页制作、Oracle数据库、Java Web开发技术、Linux技术、网站性能与安全、软件工程开发流程、Java Web和谐等)
③企业级框架开发(数据结构与算法、SSH框架、JavaEE和谐等)
④项目实训
互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。
想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。
祝你学有所成,望采纳。
java分成J2ME(移动应用开发),J2SE(桌面应用开发),J2EE(Web企业级应用),所以java并不是单机版的,只是面向对象语言。建议如果学习java体系的话可以这样去学习:
第一阶段:Java基础,包括java语法,面向对象特征,常见API,集合框架;
第二阶段:java界面编程,包括AWT,事件机制,SWING,这个部分也可以跳过,用的时候再看都能来及;
第三阶段:java API:输入输出,多线程,网络编程,反射注解等,java的精华部分;
第四阶段:数据库SQL基础,包括增删改查操作以及多表查询;
第五阶段:JDBC编程:包括JDBC原理,JDBC连接库,JDBC API,虽然现在Hibernate比JDBC要方便许多,但是JDBC技术仍然在使用,JDBC思想尤为重要;
第六阶段:JDBC深入理解高级特性:包括数据库连接池,存储过程,触发器,CRM思想;
第七阶段:HTML语言学习,包括HTML标签,表单标签以及CSS,这是Web应用开发的基础;
第八阶段:JavaScript脚本语言,包括javaScript语法和对象,就这两个方面的内容;
第九阶段:DOM编程,包括DOM原理,常用的DOM元素以及比较重要的DOM编程思想;
第十阶段:Servlet开发,从此开始踏入java开发的重要一步,包括XML,Tomcat服务器的安装使用操作,HTTP协议简单理解,Servlet API等,这个是Java Web开发的基础;
第十一阶段:JSP开发:JSP语法和标签,自定义标签,EL,JSTL库了解以及MVC三层架构的设计模式理念;
第十二阶段:AJAX开发:AJAX原理,请求响应处理,AJAX开发库;
第十三阶段:轻量级框架,三大框架之一Struts框架的学习,自此踏入java web开发的精华部分,包括Struts体系架构,各种组件,标签库和扩展性的学习;
第十四阶段:Hibernate框架学习,三大框架之一,包括检索映射技术,多表查询技术,缓存技术以及性能方面的优化;
第十五阶段:Spring框架的学习,三大框架之一,包括了IOC,AOP,DataSource,事务,SSH集成以及JPA集成;
最后呢,还有些java的技术,包括EJB3.0等,可以选择学习,与三大轻量级框架相比,EJB就是当之无愧的重量级了。
标识符:是指在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等,都是标识符。
命名规则: 硬性要求
标识符可以包含 英文字母26个(区分大小写) 、 0-9数字 、 $(美元符号) 和 _(下划线) 。
标识符不能以数字开头。
标识符不能是关键字。
命名规范: 软性建议
类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
变量名规范:全部小写。
关键字:是指在程序中,Java已经定义好的单词,具有特殊含义。
常量:是指在Java程序中固定不变的数据。
注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须要的,它不影响程序的编译和运行。(强烈建议任何时候写的的代码都要写上注释,养成良好的开发习惯)
Java的数据类型分为两大类:
基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。
引用数据类型:包括 类 、 数组 、 接口 。
其余的全部都是引用类型。在JAVA代码中:Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。
分为两种情况:自动转换:自动转换将 取值范围小的类型 自动提升为 取值范围大的类型 。(JAVA自动执行)
强制转换: 将取值范围大的类型 强制转换成 取值范围小的类型 。(手动执行)
强烈注意
浮点转成整数,直接取消小数点,可能造成数据损失精度。
int 强制转成 short 砍掉2个字节,可能造成数据丢失。
JAVA中的运算符:
算术运算符:+ - * / % ++ --
注意:
++ 运算,变量自己增长1。反之, -- 运算,变量自己减少1,用法与 ++ 一致。
独立运算时 前++和后++ 一样;
混合运算时,前++先加后用,后++先用后加
+ 符号在字符串中的操作:
+ 符号在遇到字符串的时候,表示连接、拼接的含义。
"a"+"b"的结果是“ab”,连接含义
赋值运算符:= += -= *= /= %=
注意 :
只有变量才能使用赋值运算符,
常量不能使用 符合赋值运算符中隐藏着一个强制类型转换
比较运算符:>= <= == != > <
注意:
== 比较的是地址值
比较运算符结果一定是boolean值 不是true就是false
比较运算符不能连载写: 比如我们数学中的【1<2<3】 在java中这是错误写法
逻辑运算符包括:
&& 短路与
1. 两边都是true,结果是true
2. 一边是false,结果是false
短路特点:符号左边是false,右边不再运算
|| 短路或
1. 两边都是false,结果是false
2. 一边是true,结果是true
短路特点: 符号左边是true,右边不再运算
! 取反
1. ! true 结果是false
2. ! false结果是true
逻辑运算符,是用来连接两个布尔类型结果的运算符,运算结果都是布尔值 true 或者 false
三元运算符:数据类型 变量名 = 布尔类型表达式?结果1:结果2
布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。
布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。
三元运算有时可以代码更加简洁,优秀
方法就是对已有功能的抽取(切记方法必须是挨着不能进行嵌套,静态方法只能调用静态方法,不能直接调用非静态方法)
方法的重载(Overload):多个方法的名称一样,但是参数列表不一样。
好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能。
方法的三种调用格式:打印调用,赋值调用,单独调用
方法重载与下列因素相关:
1. 参数个数不同
2. 参数类型不同
3. 参数的多类型顺序不同
方法重载与下列因素无关:
1. 与参数的名称无关
2. 与方法的返回值类型无关
数组:是一种容器,可以同时存放多个数据值
特点:
1.是一种引用数据类型
2.数组当中的多个数据,类型必须统一
3.数组的长度在程序运行期间不可改变
两种常见的初始化方式:
1.动态初始化(指定长度) 数据类型 [] 数组名 = new 数据类型[数组长度];
2.静态初始化(指定内容,会根据元素个数来确定数组长度)
(标准格式)数据类型 [] 数组名 = new 数据类型[]{元素1,元素2,...};
(省略模式)数据类型 [] 数组名 = {元素1,元素2,...};
注意:1.静态初始化没有直接计算长度,但仍然会自动推算得到长度。
2.静态初始化标准格式可以拆分为两个步骤
3.动态初始化也可以拆分为两个步骤
4.静态初始化一旦使用省略格式,就不能拆分为两个步骤了。
建议:1.不确定数组中的具体内容用动态,否则用静态
直接打印数组名称,得到数组对应的:内存地址哈希值
动态初始化数组,元素会有一个默认值,规则如下:
整数类型 默认 0
引用类型 默认 null
布尔类型 默认 false
字符类型 默认 \u0000
浮点类型 默认 0.0
java学习时一般分为阶段去学。
首先学习java基础,包含一些基本语法,基础还是要学扎实。第二java面向对象,java是面向对象的语言,虽然很多人在初学时不是特别理解,但是还是要掌握面向对象的知识。第三学习JAVASE,包含一些线程通信以及j文件操作等知识,第四部分接触数据库和JDBC等,是以后开发项目的关键。第五是前端知识,因为java是一个全栈语言,所以不止学习后端,前端也应该掌握,而最后一部分就是框架,框架是把代码进行封装,使用起来会更加方便,开发时都会用到框架。学习时可以通过书籍以及网站像TMOOC进行学习,但是还是建议进行系统的学习。
学习java的基础是JavaSE,用它可以编写java控制台程序,和桌面程序。
要学习的东西一般包括java基础选择循环控制语句什么的,java输入输出流,集合框架,多线程,常用类,数据库连接,xml读写,网络连接,桌面应用程序界面编写(如果你要向ee发展的化可以不学)。
javaEE是web应用,也就是写网站程序,网络应用,需要学jsp,servlet,数据库连接jdbc,三大框架ssh,AJAX .
学java最重要的是下面四个内容:1、掌握Java语言的使用:语言语法、程序逻辑,OOP(面向对象)思想,封装、继承、多态,集合框架、泛型、File I\O技术,多线程技术、socket网络编程,XML技术。编程有关的操作系统基本使用,HTML5规范、HTML5文档结构、HTML5元素、Web语义化;CSS3规范、CSS3选择器、层叠与继承、盒模型与视觉格式化模型、现代CSS布局、CSS3基本属性千锋教育就有线上免费Java线上公开课。2、掌握Java Web开发技术:Java开发中使用到的Web前端技术,HTML5+CSS3,JavaScript操作BOM和DOM,JQuery的选择器、事件处理、动画效果,MySQL数据库技术,JDBC技术、JSP、Servlet、EL和JSTL、过滤器和监听器、AJax异步请求等,Linux技术、SVN、Linux环境下项目发布部署等。 3、掌握使用流行框架SSM\SSH技术实现企业级项目开发:重点学习MyBatis、Spring、Spring MVC框架的应用,Git、Java设计模式等,重点学习Struts2 、Spring、Hibernate框架的应用,Maven、Oracle数据库应用技术,了解大数据生态体系,Hadoop基础入门。4、JavaWeb框架:Spring体系结构、Spring IOC、AOP、FactoryBean与BeanFactory、声明性事务处理、Spring 5新特性。Maven与Gradle的使用。Spring Boot自动配置、Spring Boot CLI与Initializr、Spring Boot Starter、Actuator。SpringMVC工作原理和工作流程;拦截器、数据绑定转换和格式化、全局异常处理、转发与重定向、AJAX请求处理。如果想了解更多相关知识,建议到千锋教育了解一下。千锋教育总部位于北京,已在18个城市成立分公司,现有教研讲师团队300余人,每年培养泛IT人才近2万人,十年间累计培养超10余万泛IT人才 。
《学习JavaScript数据结构与算法(第3版)》pdf下载在线阅读全文,求百度网盘云资源
《学习JavaScript数据结构与算法(第3版)》([巴西]洛伊安妮·格罗纳)电子书网盘下载免费在线阅读
链接: https://pan.baidu.com/s/1PliVgu8oanCmDsqAr2_nJA
提取码: nu3i
书名:学习JavaScript数据结构与算法(第3版)
作者:[巴西]洛伊安妮·格罗纳
译者:吴双
豆瓣评分:8.4
出版社:人民邮电出版社
出版年份:2019-5
页数:308
内容简介:
本书首先介绍了JavaScript语言的基础知识(包括ECMAScript和TypeScript),其次讨论了数组、栈、队列、双端队列和链表等重要的数据结构,随后分析了集合、字典和散列表的工作原理,接下来阐述了递归的原理、什么是树以及二叉堆和堆排序,然后介绍了图、DFS和BFS算法、各种排序(冒泡排序、选择排序、插入排序、归并排序、快速排序、计数排序、桶排序和基数排序)和搜索(顺序搜索、二分搜索和内插搜索)算法以及随机算法,接着介绍了分而治之、动态规划、贪心算法和回溯算法等高级算法以及函数式编程,最后还介绍了如何计算算法的复杂度。
作者简介:
洛伊安妮·格罗纳(Loiane Groner)
花旗银行软件开发经理,负责海外项目的开发和团队管理;原IBM公司系统分析师及团队负责人;巴西坎皮纳斯Java用户组(CampinasJUG)协调人;Sencha和Java技术推广者,通过博客为软件开发社区撰稿,发表关于IT职业发展和常用开发技术的文章和视频,并经常受邀在各大技术会议上做报告。另著有《精通Ext JS》等书。
Java 与 算法+数据结构 (100分)
算法与数据结构才是程序的灵魂,你老是这么说,只是希望把你们培养成代码工人~~ 好的算法与数据结构是永远不会过时的,JAVA一般用在J2EE上,比较侧重面向对象的社会,但是一个程序里没有好的算法,程序就没技术含量
朋友,我以前学过 C 。
虽然没有专门投入到算法中,但是对算法和数据结构也都还是很感兴趣的。
【简单来讲一下】
【算法】在任何语言都是非常重要的。哪种算法最节省内存,哪种算法效率最高,最安全。这些应该是我们每个程序员都必须要掌握并积极钻研的。只有这样才能写出高水平的代码。而你想转向 JAVA ,我个人非常支持,并热情期盼你的加入。
对于【数据结构】,JAVA 中使用类的概念,即封装了数据结构,又封装了方法。它带给我的乐趣要比数据结构多了很多,相信你也会喜欢的。
JAVA 中没有【指针】操作。这让我很心痛。
【简评 JAVA 】
JAVA 相对于 C 而言,可算得上是一门比较年轻的语言。它整体的技术水平都处于一个前期的发展阶段,相对于 C 而言,技术尚未成熟。所以对程序员的技术门槛还比较低。
现在 JAVA 培训机构很多,转向 JAVA 的人越来越多。这其中有一个很重要的原因,就是 JAVA 简单易学,经过一系列的培训后,基本都能够进行中小型项目的开发。然而,这只能是眼前的一个快速发展阶段。
以发展的角度来看这个现象,势必会使我国的 JAVA 整体水平得到快速提高。这样一来,用不了几年或者十几年的时间,JAVA 对程序员的整体要求必然会大大提高。到时,JAVA 程序员对 算法 和 数据结构 的需要就成了必然。
【老师的评价】
你的老师们说算法和数据结构对于Java编程里都用不上,以现在的就业情况来看,也只能理解为:不用学 算法 和 数据结构 也能就业。但如果想成为一名优秀的专业人才,算法 和 数据结构 是永远少不了的。
这个问题就是OO思想和面向过程的不同么。。好的面向对象的程序,解决一个问题的性能要比好的面向过程程序慢50%,但是在代码可重复利用,以及使得开发简单上,OO具有明显优势。
分很高啊,但是我只能简单说一下!
说句实话,java和算法与数据结构大多数情况下关系不大,java绝大多数是web方面的开发,基本是套用成熟的框架,也就是说现在的程序员是用软件,而不是做软件,别人的开源东东用的熟练就是好程序员,所以现在程序员薪水越来越低。当然这只是一般情况或者说绝大多数情况是这样,面对现实。
不知道你现在在什么地方学习,如果是培训机构这无可厚非,如果是大学,建议你给你老师一个耳光。因为算法与数据结构需要时间的熏陶消化和理解,培训机构短期内不可能给人讲明白,所以一般干脆不讲,当然会降低它的评价。
好了,正题,算法与数据结构对于java开发来说一般涉及底层开发,即一些公司的核心技术,所以对于新手来说暂时是用不到的,因为刚进公司不可能涉及公司核心的,但是对于成手了解算法与数据结构必然会为你的开发带来更高的效率,这点毋庸置疑,不论那种开发语言。
你对算法与数据结构有兴趣很好,建议,只是建议,去做c/c++方面的开发吧,那个涉及的算法与数据结构更多,当然薪水也不是java能比的,只是就业岗位少得多。
放心,比没基础的强多了
说数据结构没用那是不可能的,但是要看你做什么了。
比如说你要血java,如果你想搞网站方面的话就简单了。
数据结构基本可以不用学,因为在web应用中,能用到的算法的地方少之又少,几乎就那么几个,想记不住都难。
但是如果你要往软件方面和手软方面发展的话就要学一部分了,但是这东西学是学不到的,能学到的只不过是思路,到时候自己发挥一下,想个算法就行了,算法这东西说难不难,难的东西有,但是没有你能用到的。
像你这样的情况我想说两点:
首先,说你想从事算法类的工作,那么选择什么样的语言都是一样的,算法肯定有,但是用到的都不多。刚进公司的时候一般是用不到算法的,因为算法都是别人想的,你也许有好的算法,但是别人不一定采用,但是你的算法基础不要丢掉,因为等你当了项目经理后这个是必不可少的。
其次,你要知道,在学计算机的路上,很少有人能学什么就做什么,大家都在被社会潮流推动,想要不掉队就只能随波逐流。因为毕竟我们都不想一辈子写代码。大家都是拿这东西做个跳板。
学java的路很长,但是也很有趣,希望你能学好。我想以你的算法基础,以后想成为专业精英不是问题。加油吧。
求JAVA.数据结构.算法学习视频百度云。
《Java数据结构和算法》(第2版)介绍了计算机编程中使用的数据结构和算法,对于在计算机应用中如何操作和管理数据以取得最优性能提供了深入浅出的讲解。
全书共分为15章,分别讲述了基本概念、数组、简单排序、堆和队列、链表、递归、进阶排序、二叉树、红黑树、哈希表及图形等知识。附录中则提供了运行专题Applet和例程、相关书籍和问题解答。《Java数据结构和算法》(第2版)提供了学完一门编程语言后进一步需要知道的知识。
本书所涵盖的内容通常作为大学或学院中计算机系二年级的课程,在学生掌握了编程的基础后才开始本书的学习。
《Java数据结构和算法》(第2版)以一种易懂的方式教授如何安排和操纵数据的问题,其中不乏一些难题:了解这些知识以期使计算机的应用获得最好的表现。不管使用何种语言或平台,掌握了数据结构和算法将改进程序的质量和性能。
《Java数据结构和算法》(第2版)提供了一套独创的可视讨论专题用以阐明主要的论题:它使用Java语言说明重要的概念,而避免了C/C++语言的复杂性,以便集中精力论述数据结构和算法。经验丰富的作者RorbertLafore先生提供了许多简单明了的例子,避免了对于这类例题常见的冗长、繁锁的数学证明。在第二版中,他利用Java语言最新特性,修改并扩充了他的例子。在每一章后都有问题和练习,使读者有机会测试自己的理解程度。
《数据结构课程精讲教案合集-复旦大学(共计1061页).pdf 》百度网盘免费资源下载
链接: https://pan.baidu.com/s/15uwjtHgKKzZdheWFQC21pQ
?pwd=abzc 提取码: abzc
请问,怎么有步骤地学好数据结构与算法JAVA语言这门专业?
1. "我想学好基础的数据结构和算法! "
不多说,有这心就往下看。
2. "我应该准备些什么? "
a. 这本橙书: 《算法 第四版》
--亚马逊中文版: amazon.cn 的页面
--线上资源: Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne
b. 注册Coursera, 依次加入这2门课:
Part 1: https://www.coursera.org/course/algs4partI
Part 2: https://class.coursera.org/algs4partII-006
如果没开课, 就先标记, 这样开课时会通过邮箱提示你.
3. "我应该做些什么? "
先熟读书内1.1和1.2, 最好把课后习题都做一做. 网站上开课后(即使已经开课几周了, 没关系), 跟住上课内容: 课本知识 + 视频内容 + 课件重点+ Exercises (独立完成且满分) + Programming Assignments (独立完成且尽量满分) + Job Interview Questions. 从Part 1到Part 2, 跟住, 跟住, 跟住!
关于做书后练习题,参见:
算法 第四版(algorithms 4th edition ) 这本书有配套的习题答案吗? - 孟祥丰的回答
4. "我学完了呢!"
再去跟隔壁斯坦福的算法公开课, 他还给证书! 因为参考书籍基本上就是是《CLRS》, 所以也就是强迫自己去仔细研读算法导论.
---课程名称:
---课程地址
Part 1: https://www.coursera.org/course/algo
Part 2: https://www.coursera.org/course/algo2
算法设计与分析,>
算法设计与分析,>
算法,>
算法,>
请推荐一本基于JAVA语言的数据结构和算法的书,中文版的
数据结构与算法:Java语言版(第2版)
【评 价】 (共 7 条) 参与评论
【原 书 名】 Data Structures and Algorithms in Java, Second Edition
【原出版社】 Thomson
【作 者】(美)Adam Drozdek [同作者作品] [作译者介绍]
【译 者】 周翔[同译者作品]
【丛 书 名】 计算机科学丛书
【出 版 社】 机械工业出版社 【书 号】 7111189930
【出版日期】 2006 年7月 【开 本】 16开 【页 码】 573 【版 次】2-1
【所属分类】 计算机 > 计算机科学理论与基础知识 > 数据结构
计算机 > 计算机科学理论与基础知识 > 计算理论 > 算法
计算机 > 软件与程序设计 > JAVA > Java
教材 > 研究生/本科/专科教材 > 工学 > 计算机
教材 > 计算机教材 > 本科/研究生 > 计算机专业 > 计算机基础课程 > 算法与数学基础
这个就挺不错,以前我跟你情况相似,我就是看的这个。学习下这本吧,很有用处!
数据结构(c语言版)
严蔚敏 吴伟民编写
清华大学出版社出版
这本书评价很好的,可以一看
java类的一般首推 think in java
不过你想看高级算法那就是首推 算法导论
清华大学出版社 数据结构Java版(第二版)定价好像是128元。
如果你精通JAVA 就应该看JAVA与模式 而不是什么数据结构
英文名:《Data Structures & Algorithms in Java》
中文名:《Java数据结构和算法》
作 者:Robert Lafore
出版社:中国电力出版社
阅读方法:相对与其他的数据结构和算法的书,这本书语言很简洁而且容易读,让你少了一些阅读算法书籍的苦恼,但是也不能指望很轻松的把它读完,毕竟,这也是描述算法的书呀。
不过幸运的是,如果只是为了锻炼工作技能,倒是不必把所有的算法细节都弄的一清二楚,掌握到能够选择针对实际问题而进行数据结构和算法的选择,基本上就能应付90%以上的情况了。
我们的建议是:只要你学的是JAVA,这本书就应该从头到尾的啃一遍,而且是细细的啃,不是象前一本《Java编程思想》那样的略读,不过,读这本书没什么时间限制,尽量读就行了,哪怕你已经工作了,再花业余的时间读下来也不迟。
另外,象算法这种东西,你弄明白一次,一辈子就明白了,不会再变了,所以,哪怕用一周、一个月的时间啃下来一个程序,也是值得的。
如果你着急工作,这本书可以略读,掌握住常用的数据结构和算法的特点(不是实现),就可以了。
如果你还在上学,有大量的时间,或者你想在大型公司(IBM、MicroSoft、Sun等)的笔试中有良好的表现,你就需要一个字一个字的仔细阅读了。