下载地址:网盘下载 一、内容简介 一、内容简介 本书是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计)。本书把算法分析与最有效率的Java程序的开发有机地结合起来,深入分析每种算法,内容全面、缜密严格, ...
分类:
编程语言 时间:
2018-02-05 17:06:37
阅读次数:
268
下载地址:网盘下载 内容简介本书以Java为描述语言,介绍了数据结构与算法的基本知识。书中结合企业界的工程实践提炼教学内容,特别对数据结构中易混淆的问题进行了梳理,对每一个问题提出不同的解决方案。本书是一本优秀的数据结构方面的教材。 内容简介 内容简介 本书以Java为描述语言,介绍了数据结构与算法 ...
分类:
编程语言 时间:
2018-02-05 17:01:30
阅读次数:
201
4. 归并排序 4.1 递归实现 函数的递归本质上是一个压栈出栈的过程,更广意义上来说,函数调用都是压栈和出栈的过程,排序这一系列完了 ,我打算写一下函数调用和栈的关系的一章,看看能不能把这个过程理解透彻一些。 具体来说归并排序的递归实现。其主要思想是把待排序序列分为大小基本相同的两个部分,分别对前 ...
分类:
编程语言 时间:
2018-02-04 22:54:13
阅读次数:
355
3.2 快速排序 快速排序综合性能优越,其主要思想在于找一个pivotvalue,通过不断的比较、交换,将序列变成pivotvalue前的值都比它小,在其后的值都比它大;然后,再对pivotvalue前面的序列和后面的序列分别使用同样的方法得到具有该性质的序列.....不断递归调用至最底层即排好序。 ...
分类:
编程语言 时间:
2018-02-03 20:54:18
阅读次数:
408
1. 栈和队列的基本性质 (1)数组结构实现容易; (2)用链表结构较为复杂,因为牵扯很多的指针操作; 1.1 栈结构的基本操作 (1)pop操作;(弹出) (2)top或peek操作; (3)push操作;(压栈) (4)size操作; 1.2 队列的基本操作 (1)队列的基本操作与栈操作不同的是 ...
分类:
编程语言 时间:
2018-02-03 13:15:37
阅读次数:
167
1. 链表的基本概念 数组是一段连续的存储空间; 链表空间不一定保证连续,是临时分配的; 按方向: 单链表:每个节点只能通过next指针指向下一个节点; 双链表:除了可以用next指针之外,还可以用previous指针,指向前一个节点; 按有无环: 普通链表 循环链表(首尾相接的链表,最后一个元素的 ...
分类:
编程语言 时间:
2018-02-03 13:13:19
阅读次数:
164
2.2 堆排序 堆:1. 是完全二叉树;2. 树中所有结点都比左右孩子大(或小)。(但在实现过程发现,其实堆排序并没有用到树结构,还是用的顺序表,只是用完全二叉树来理解而已)。 堆排序是一种选择排序算法,其主要思路是:先将所有待排序元素构造成一个大顶堆(或小顶堆),接着将堆顶元素和最后一个元素(层序 ...
分类:
编程语言 时间:
2018-01-27 19:01:38
阅读次数:
153
1. 字符串的一些特点 1.1 广泛性 (1)字符串可以看作是字符类型的数组 >所以可能会涉及排序+查找; (2)很多问题都可以转化为字符串类型的方法去解决; 需要注意的是:用java语言实现字符串类型的题目的时候,需要掌握StringBuffer、StringBuilder类和toCharArra ...
分类:
编程语言 时间:
2018-01-27 11:35:05
阅读次数:
137
2. 选择排序 2.1 简单选择排序 简单选择排序的主要思想是,对第i个元素,将其与后面的n-i个元素作比较,用一个min变量存储这n-i+1个元素中的最小值的位置,比较完后将a[min]和a[i]交换(min != i)。简单选择排序进行了(n^2)/2次比较,n次交换,交换的次数少。 其主要过程 ...
分类:
编程语言 时间:
2018-01-27 00:33:36
阅读次数:
165