Java数据结构
Java开发面试辅导-海龟老师
毕业于浙江大学软件工程硕士,在BAT一线大厂担任架构师工作,作为面试官有丰富的面试经验,以及项目架构经验
展开
-
java数据结构--栈
1.栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。 (1)通常称插入、删除的这一端为栈顶 (Top),另一端称为栈底 (Bottom)。 (2)当表中没有元素时称为空栈。 (3)栈为后进先出(Last In First Out)的线性表,简称为 LIFO 表。原创 2015-12-11 22:34:35 · 681 阅读 · 0 评论 -
java数据结构--队列
队列的定义: 队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。 (1)允许删除的一端称为队头(Front)。 (2)允许插入的一端称为队尾(Rear)。 (3)当队列中没有元素时称为空队列。 (4)队列亦称作先进先出(First In First Out)的线性表,简称为FIFO表。 队列的修改是依先进先出的原则进行的。新来的成原创 2015-12-12 11:51:16 · 517 阅读 · 0 评论 -
java链式队列
下面来讨论队列的链式存储,即链队列。 链队列的定义: 队列的链式存储结构简称为链队列。它是限制仅在表头删除和表尾插入的单链表。 链队列的数据存储形式: 链队列基本运算的实现: /** * */ package unit5Queue.linked; /** * 链式队列 * Title: LinkedQueue原创 2015-12-17 22:01:36 · 683 阅读 · 0 评论 -
(数据结构)排序--直接插入排序
要点 直接插入排序是一种最简单的插入排序。 插入排序:每一趟将一个待排序的记录,按照其关键字的大小插入到有序队列的合适位置里,知道全部插入完成。 在讲解直接插入排序之前,先让我们脑补一下我们打牌的过程。 先拿一张5在手里, 再摸到一张2,比5小,插到5前面, 摸到一张6,嗯,比5大,插到5后面, 摸到一张3,插到2和5之间,原创 2016-01-03 19:45:36 · 676 阅读 · 0 评论 -
冒泡排序算法
冒泡排序是一种交换排序。 什么是交换排序呢? 交换排序:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。 算法思想 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故原创 2016-01-05 09:22:19 · 583 阅读 · 0 评论 -
java数据结构--二叉树,递归遍历,非递归遍历,层次遍历
1.为什么要引入树 线性结构的特点是插入和删除速度慢,查找速度快。 链式结构的特点是查找速度慢,插入和删除速度快。 树型结构综合了线性结构和链式结构优点,查找,删除,插入速度都快原创 2015-12-23 23:09:04 · 1754 阅读 · 1 评论 -
java排序算法(一):堆排序
Java排序算法(三):堆排序 堆排序(Heapsort)是指利用 堆 这种数据结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。 堆排序是不稳定的排序方法,辅助空间为O(1), 最坏时间复杂度为O(nlog2n) ,堆排序的堆序的平均性能较接近于最坏性能。原创 2016-01-28 11:09:21 · 576 阅读 · 0 评论 -
java排序算法(二):直接选择排序
java排序算法(二):直接选择排序 一、基本概念 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置(注:要把最大最小的元素和起始的元素交换),然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 二、算法特点 是否稳定: false 平均时间复杂度:O(n^2) 最差原创 2016-01-28 16:12:54 · 572 阅读 · 0 评论 -
java排序算法(三):快排
要点 快速排序是一种交换排序。 快速排序由C. A. R. Hoare在1962年提出。 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分:分割点左边都是比它小的数,右边都是比它大的数。 然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 详细的图解往往比大堆的文字更有说明力,所以直接上图:原创 2016-01-30 21:43:59 · 682 阅读 · 0 评论