当前位置:首页 > 电子书 > 电子书下载 > 程序设计 >
数据结构与算法经典问题解析:Java语言描述 数据结构与算法经典问题解析:Java语言描述
837571206

837571206 提供上传

资源
15
粉丝
8
喜欢
145
评论
14

    数据结构与算法经典问题解析:Java语言描述 PDF 第2版

    Java语言电子书
    • 发布时间:2019-12-08 19:20:06

    给大家带来的一篇关于Java语言相关的电子书资源,介绍了关于数据结构、算法、Java语言方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小107.1 MB,纳拉西姆哈?卡鲁曼希编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.4。

  • 数据结构与算法经典问题解析:Java语言描述 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1IAC4dLE9PKws8SR88iLxi
  • 提取码:czp1
  • 数据结构与算法经典问题解析:Java语言描述(原书第2版) 是一本数据结构方面的优秀教材,以Java为描述语言,介绍了计算机编程中使用的数据结构和算法。本书强调问题及其分析,而非理论阐述,共分为21章,讲述了基本概念、递归和回溯、链表、栈、队列、树、优先队列和堆、并查集DAT、图算法、排序、查找、选择算法(中位数)、符号表、散列、字符串算法、算法设计技术、贪婪算法、分治算法、动态规划算法、复杂度类型等内容。每章首先阐述必要的理论基础,然后给出问题集。全书中大约有700个算法问题及相应的解法,对于许多问题,本书提供了多个具有不同复杂度的解决方法。

    本书可作为高等院校计算机及其相关专业的数据结构课程的教材或教学参考书,同时也可以作为从事计算机研究与开发的技术人员的参考书,特别是对正在准备面试、参加选拔性考试以及校园面试的读者尤为有用。

    目录

    • 第1章绪论1
    • 第2章递归和回溯28
    • 第3章链表34
    • 第4章栈72
    • 第5章队列98
    • 第6章树110
    • 第7章优先队列和堆181
    • 第8章并查集ADT201
    • 第9章图算法211
    • 第10章排序256
    • 第11章查找279
    • 第12章选择算法(中位数)304
    • 第13章符号表314
    • 第14章散列317
    • 第15章字符串算法335
    • 第16章算法设计技术361
    • 第17章贪婪算法364
    • 第18章分治算法375
    • 第19章动态规划算法390
    • 第20章复杂度类型425
    • 第21章杂谈433

    上一篇:SAP内存计算-HANA

    下一篇:21天学通HTML+CSS+JavaScript Web开发

    展开 +

    收起 -

     
    Java语言 相关内容
    数据结构与算法:Python语言实现
    数据结构与算法:Python语言实现 中文超清版

    这书选用Python語言详细介绍数据结构和优化算法,包含其设计构思、剖析和执行。这书源码简约、确立,面向对象编程的见解围绕自始至终,根据承继*底限地提升编码器重,一起突显不一样抽

    立即下载
    Python数据结构与算法分析
    Python数据结构与算法分析 完整第2版

    若把撰写代码比成急行军打战,那麼要想独霸战场,不可以光靠手上的尖刀,还需深得古语。Python是一把尖刀,数据结构与优化算法则是古语。只能通读古语,才可以使尖刀无坚不摧。《 Pyt

    立即下载
    C++数据结构与算法
    C++数据结构与算法 第4版

    这本《C++数据结构与算法(第4版)》全面系统地介绍了数据结构,并以C++语言实现相关的算法。 主要强调了数据结构和算法之间的联系,使用面向对象的方法介绍数据结构,其内容包括算法的复

    立即下载
    数据结构与算法
    数据结构与算法 超清扫描版

    《 数据结构与算法 》:系统软件详细介绍各种各样基础数据结构的定义、基本原理和操作步骤,并从算法的视角探讨排列和查找算法。 以难题求出主导线,从难题抽象性、数据抽象和算法抽

    立即下载
    学习JavaScript数据结构与算法
    学习JavaScript数据结构与算法 原书第3版 立即下载
    数据结构与算法分析:C语言描述
    数据结构与算法分析:C语言描述 含答案高清版

    书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能、效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构

    立即下载
    数据结构与算法图解
    数据结构与算法图解 超清原版 立即下载
    学习笔记
    网友NO.117748

    java语言中反射的实例用法总结

    Java反射机制 一、什么是反射机制 简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息。 二、哪里用到反射机制 有些时候,我们用过一些知识,但是并不知道它的专业术语是什么,在刚刚学jdbc时用过一行代码, Class.forName(com.mysql.jdbc.Driver.class).newInstance();但是那时候只知道那行代码是生成 驱动对象实例,并不知道它的具体含义。听了反射机制这节课后,才知道,原来这就是反射,现在很多开 框架都用到反射机制,hibernate、struts都是用反射机制实现的。 三、反射机制的优点与缺点 为什么要用反射机制?直接创建对象不就可以了吗,这就涉及到了动态与静态的概念, 静态编译:在编译时确定类型,绑定对象,即通过。 动态编译:运行时确定类型,绑定对象。动态编译最大限度发挥了java的灵活性,体现了多 态的应用,有以降低类之间的藕合性。 一句话,反射机制的优点就是可以实现动态创建对象和编译,体现出很大的灵活性,特别是在J2EE的开发中它的灵活性就表现的十分明显。比如,一个大型的软件,不可能一次就把把它设计的很完美,当这个程序编译后,发布了,当发现需要更新某些功能时,我们不可能要用户把以前的卸载,再……

    网友NO.771205

    Java语言中一个字符占的字节数详解

    题主要区分清楚内码(internal encoding)和外码(external encoding)就好了。 内码是程序内部使用的字符编码,特别是某种语言实现其char或String类型在内存里用的内部编码; 外码是程序与外部交互时外部使用的字符编码。外部相对内部而言;不是char或String在内存里用的内部编码的地方都可以认为是外部。例如,外部可以是序列化之后的char或String,或者外部的文件、命令行参数之类的。 Java语言规范规定,Java的char类型是UTF-16的code unit,也就是一定是16位(2字节); char, whose values are 16-bit unsigned integers representing UTF-16 code units (3.1). 然后字符串是UTF-16 code unit的序列: The Java programming language represents text in sequences of 16-bit code units, using the UTF-16 encoding. 这样,Java规定了字符的内码要用UTF-16编码。或者至少要让用户无法感知到String内部采用了非UTF-16的编码。 另举一例: Java标准库实现的对char与String的序列化规定使用UTF-8作为外码。Java的Class文件中的字符串常量与符号名字也都规定用UTF-8编码。这大概是当时设计者为了平衡运行时的时间效率(采用定长编码的UTF-16)与外部存储的空间效率(采用变长的UTF-8编码)而做的取舍。 首先,你所谓的字符具体指什么呢? 如果你说的字符就是指 Java 中的 char,那好,那它就是 16 位,2 字节。 如果你……

    网友NO.114858

    Java语言多线程终止中的守护线程实例

    Java中线程分为两种类型:用户线程和守护(服务)线程。通过Thread.setDaemon(false)设置为用户线程;通过Thread.setDaemon(true)设置为守护线程;不设置则默认为用户线程。 结束单线程用 Thread.interrupt() 方法,多线程结束则需要设置守护线程。当不存在用户线程时,守护线程就会全部终结(可以理解为:守护线程是服务线程,用户线程是被服务线程,用户线程(被服务线程)全都没有了,服务线程便没有存在意义而自动终结) 例子: class StopThread implements Runnable {public void run() {// 构造函数,实例化时默认执行while (true) {// 永真循环,用于检测该守护线程会不会自动结束System.out.println(Thread.currentThread().getName() + "....run");}}}public class threadTest {public static void main(String[] args) {StopThread st = new StopThread();Thread t1 = new Thread(st);// 创建新线程Thread t2 = new Thread(st);t1.setDaemon(true);// 设置成守护(服务)线程,当用户线程全挂时,所有守护线程也跟着挂t2.setDaemon(true);t1.start();// 线程开始t2.start();int num = 0;while (true) {if (num++ == 10) {break;}System.out.println(Thread.currentThread().getName() + "......." + num);}System.out.println("over");}} 当执行完最后一句 System.out.println(“over”) 时,用户线程(主程序)结束;在后台永真循环里 不断输出信息的两个守护线程 也会自动终止。 另外介绍一个常见的……

    网友NO.767417

    Java语言实现快速幂取模算法详解

    快速幂取模算法的引入是从大数的小数取模的朴素算法的局限性所提出的,在朴素的方法中我们计算一个数比如5^1003%31是非常消耗我们的计算资源的,在整个计算过程中最麻烦的就是我们的5^1003这个过程 缺点1:在我们在之后计算指数的过程中,计算的数字不都拿得增大,非常的占用我们的计算资源(主要是时间,还有空间) 缺点2:我们计算的中间过程数字大的恐怖,我们现有的计算机是没有办法记录这么长的数据的,所以说我们必须要想一个更加高效的方法来解决这个问题 当我们计算A B %C的时候,最便捷的方法就是调用Math函数中的pow方法,但是有时A的B次方数字过大,即使是双精度的double也会溢出,这个时候为了得到A B %C的结果,我们会选择使用快速幂取模算法,简单快速的得到我们想要的结果。 为了防止数字溢出并且降低复杂度,我们需要用到下面的公式: a b mod c = (a mod c) b mod c 这个公式的意思就是:积的取余等于取余的积的取余。很容易看出来这个公式是具有传递性的,这样我们可以通过不断的取余让a越来越小,防止出现溢出的情况。 理论上,有了这个公式我们就可以写代码了,通过不断的对a进行取模保证结果不会溢出,这确实能计算出较大次方的幂的模,但是这种方法的复杂度仍旧是O(N),并不快速。 为了更……

    电子书 编程教程 PC软件下载 安卓软件下载

    Copyright 2018-2020 xz577.com 码农之家

    本站所有电子书资源不再提供下载地址,只分享来路

    免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

    版权投诉 / 书籍推广 / 赞助:QQ:520161757