新書推薦:
《
律令国家与隋唐文明
》
售價:HK$
74.8
《
紫云村(史杰鹏笔下大唐小吏的生死逃亡,新历史主义小说见微之作,附赠5张与小说内容高度契合的宣纸彩插)
》
售價:HK$
101.2
《
现代吴语的研究(中华现代学术名著3)
》
售價:HK$
66.7
《
天下的当代性:世界秩序的实践与想象(新版)
》
售價:HK$
79.4
《
德国天才4:断裂与承续
》
售價:HK$
112.7
《
妈妈的情绪,决定孩子的未来
》
售價:HK$
43.7
《
推拿纲目
》
售價:HK$
414.0
《
精致考古--山东大学实验室考古项目论文集(一)
》
售價:HK$
250.7
|
編輯推薦: |
本书特色:
(1)注重夯实基础。注重讲解每种数据结构的特点,并结合实例讲解怎样正确地使用相应的数据结构和算法。
(2) 关注实用性。注重结合一些经典问题和实际问题,使读者在学习数据结构和算法后能加深对实际问题的了解,并提高解决某些实际问题的能力。
(3)强调培养能力。精选经典和实用性强的算法思想,并结合经典的问题体现这些算法思想的精髓,有利于帮助读者掌握如何设计和实现高效、优秀的算法。
(4)体现语言特色。特别注重体现Java语言的特色,除了前3章以外,其余各章的大部分代码都体现了Java的特色和Java在算法实现方面的优势。
本书配套资源丰富,包括教学大纲、教学课件、电子教案、程序源码、在线题库和习题答案。
|
內容簡介: |
本书面向有一定Java语言基础的读者,重点讲解数据结构和相关算法以及经典算法思想。本书不仅注重讲解每种数据结构的特点,而且特别注重结合实例讲解怎样正确地使用每种数据结构和相应的算法,强调使用数据结构和算法解决问题。本书精选了一些经典和实用性强的算法思想,并通过解决一些经典的问题体现这些算法思想的精髓。全书共14章,分别是数据结构概述、算法与复杂度、递归算法、数组与Arrays类、链表与LinkedList类、顺序表与ArrayList类、栈与Stack类、队列与ArrayDeque类、二叉树与TreeSet类、散列表与HashMap类、集合与HashSet类、常用算法与Collections类、图论和经典算法思想。本书特别注重体现Java语言的特色,除了前3章以外,其余各章的大部分代码都体现了Java的特色和Java在算法实现方面的优势。
本书可作为计算机相关专业的数据结构与算法的教材,也可作为软件开发等专业人员的参考用书。
|
目錄:
|
扫一扫
源码下载
第1章数据结构概述
1.1逻辑结构
1.2物理结构
1.3算法与结构
习题1
第2章算法与复杂度
2.1算法
2.2算法的复杂度
2.3常见的复杂度
习题2
第3章递归算法
3.1递归算法简介
3.2线性递归与非线性递归
3.2.1线性递归
3.2.2非线性递归
3.3问题与子问题
3.4递归与迭代
3.5多重递归
3.6经典递归
3.6.1杨辉三角形
3.6.2老鼠走迷宫
3.6.3汉诺塔
3.7优化递归
习题3
第4章数组与Arrays类
4.1引用与参数存值
4.1.1数组的引用
4.1.2参数存值
4.2数组与排序
4.2.1快速排序
4.2.2归并排序
4.3数组的二分查找
4.3.1二分法
4.3.2过滤数组
4.4数组的复制
4.4.1复制数组的方法
4.4.2处理重复数据
4.5数组的比较
4.6公共子数组
4.7数组的更新
4.7.1单值更新
4.7.2动态更新
4.8数组的前缀算法
4.9动态遍历
4.9.1动态方法
4.9.2编写动态方法
4.9.3多线程遍历
4.10数组与洗牌
4.11数组与生命游戏
习题4
第5章链表与LinkedList类
5.1链表的特点
5.2创建链表
5.3查询与相等
5.4添加节点
5.5删除节点
5.6更新节点
5.7链表的视图
5.8链表的排序
5.9遍历链表
5.10链表与数组
5.11不可变链表
5.12编写简单的类创建链表
习题5
第6章顺序表与ArrayList类
6.1顺序表的特点
6.2创建顺序表
6.3顺序表的常用方法
6.4遍历顺序表
6.5顺序表与筛选法
6.6顺序表与全排列
6.7顺序表与组合
6.8顺序表与记录
6.9Vector类
习题6
第7章栈与Stack类
7.1栈的特点
7.2栈的创建与独特的方法
7.3栈与回文串
7.4栈与递归
7.5栈与undo操作
7.6栈与括号匹配
7.7栈与深度优先搜索
7.8栈与后缀表达式
习题7
第8章队列与ArrayDeque类
8.1队列的特点
8.2队列的创建与独特的方法
8.3队列与回文串
8.4队列与加密、解密
8.5队列与约瑟夫问题
8.6队列与广度优先搜索
8.7队列与网络爬虫
8.8队列与排队
习题8
第9章二叉树与TreeSet类
9.1二叉树的基本概念
9.2遍历二叉树
9.3二叉树的存储
9.4平衡二叉树
9.5二叉查询树和平衡二叉查询树
9.6TreeSet树集
9.7树集的基本操作
9.8树集的视图
9.9树集与数据统计
9.10树集与过滤数据
9.11树集与节目单
习题9
第10章散列表与HashMap类
10.1散列结构的特点
10.2简单的散列函数
10.3HashMap类
10.4散列表的基本操作
10.5遍历散列表
10.6统计字符、单词出现的次数和频率
10.7散列表与单件模式
10.8散列表与数据缓存
10.9TreeMap类
10.10Hashtable类
习题10
第11章集合与HashSet类
11.1集合的特点
11.2HashSet类
11.3集合的基本操作
11.4集合与数据过滤
11.5正整数集合的生成集
11.6获得随机数的速度
习题11
第12章常用算法与Collections类
12.1排序
12.2二分查找
12.3反转与旋转
12.4洗牌
12.5求最大值与最小值
12.6统计次数和频率
习题12
第13章图论
13.1无向图
13.2有向图
13.3无向网络和有向网络
13.4图的存储
13.5图的遍历
13.6测试连通图
13.7最短路径
13.8最小生成树
习题13
第14章经典算法思想
14.1贪心算法
14.2动态规划
14.3回溯算法
习题14
附录A对象与接口的关键知识点
参考文献
|
內容試閱:
|
党的二十大报告指出: 教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。必须坚持科技是第一生产力、人才是第一资源、创新是第一动力,深入实施科教兴国战略、人才强国战略、创新驱动发展战略,开辟发展新领域新赛道,不断塑造发展新动能新优势。高等教育与经济社会发展紧密相连,对促进就业创业、助力经济社会发展、增进人民福祉具有重要意义。
数据结构和算法是计算机科学的核心领域,是计算机程序的基础。正确、恰当地使用数据结构和相应的算法决定了程序的性能和效率。数据结构和算法一直是计算机科学与技术、软件工程等专业的一门重要的必修课程。
本书面向有一定Java语言基础的读者,重点讲解重要的数据结构和相关算法以及重要的基础算法和经典算法思想。全书共14章,分别是数据结构概述、算法与复杂度、递归算法、数组与Arrays类、链表与LinkedList类、顺序表与ArrayList类、栈与Stack类、队列与ArrayDeque类、二叉树与TreeSet类、散列表与HashMap类、集合与HashSet类、常用算法与Collections类、图论和经典算法思想。
本书具有以下特色。
1. 注重夯实基础
本书注重讲解每种数据结构的特点,并结合实例讲解怎样正确地使用相应的数据结构和算法,特别强调分析基础算法的特点,以便读者透彻理解和正确使用这些基础算法。
2. 关注实用性
数据结构和算法与计算机科学紧密关联,常用于解决现实中的问题,本书注重结合一些经典问题和实际问题,使读者在学习数据结构和算法后能加深对实际问题的了解。
3. 强调培养能力
本书强调学习数据结构和算法课程的重要性与意义不仅是学习数据结构和算法本身,还应该注重训练、提高读者的编程能力。本书的很多实例特别强调怎样正确地使用相应的数据结构和算法解决问题,也精选了一些经典和实用性强的算法思想,并结合一些经典的问题体现这些算法思想的精髓,有利于帮助读者掌握如何设计和实现高效、优秀的算法,提高解决实际问题的能力。
4. 体现语言特色
本书特别注重体现Java语言的特色,除了前3章以外,其余各章的大部分代码都体现了Java的特色和Java在算法实现方面的优势。全书提供了138个实例、236道习题,实例中的代码都是用Java编写的。所有的实例都有详细的解释,都是可以运行的,同时也给出了运行效果图,这非常有利于读者理解代码、提高编程能力。
本书以中国美丽的二十四节气作为开始,以中国远古神话历史时代的河图洛书记载的、被誉为“宇宙魔方”的九宫格为结尾,其内容也是编者多年从事Java程序设计课程教学和学习、编写程序的经验结晶。本书的全部实例由编者编写,并在JDK 17环境下调试完成(JDK版本不能低于JDK 11)。
为便于教学,本书提供丰富的配套资源,包括教学大纲、教学课件、电子教案、程序源码、在线作业和习题答案。
资源下载提示
课件等资源: 扫描封底的“图书资源”二维码,在公众号“书圈”下载。
素材(源码)等资源: 扫描目录上方的二维码下载。
在线自测题: 扫描封底的作业系统二维码,再扫描自测题二维码在线做题及查看答案。
读者也可以关注编者的教学辅助公众号“Java教学与小提琴耿祥义”获得有关资源。
本书的实例代码及相关内容仅供读者学习使用,不得以任何方式抄袭出版。
希望本书能对读者学习数据结构和算法有所帮助,并恳请读者批评指正。
编者
2024年8月
|
|