数据结构
咸鱼妹WWW
这个作者很懒,什么都没留下…
展开
-
Java排序算法(一)----堆排序以及应用场景
(1)堆排序是利用堆这种数据结构而设计的一种排序算法,它是一种选择排序,它的最好,最坏,平均时间复杂度都为O(nlogn),是一种不稳定排序。(2)堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。(3)对于一个数组:大顶堆:tree[i] >= tree[2i+1] && tree[i] >= tree[2i+2] 小顶堆:tree[i] <= tree[2i.原创 2020-11-25 14:40:17 · 1037 阅读 · 0 评论 -
数据结构----队列,双向队列(Deque),循环队列
1.队列的基本知识 队列的基本特性就是先进先出(FIFO),也就是第一个进去的元素第一个出来。即队列就是一个只允许在一端进行插入,在另一端进行删除操作的线性表。Queue接口与List、Set同一级别,都是继承了Collection接口。2.队列按照实现方式也分为两种:①单向队列(Queue):只能在一段插入数据,另一端删除数据。②双向队列(Deque):每一段都可以进行插入数据和删除数据的操作。3.双向队列(LinkedList实现了Deque接 口) 双向队列是一个线...原创 2020-09-29 14:40:09 · 2590 阅读 · 0 评论 -
java数据结构-----队列(常用方法)
Java Queue常用方法(1)获取头元素的方法①poll()获取并移出队列的头,如果次队列为空,则返回null。②remove()获取并移出此队列的头,如果此队列为空则抛出NoSuchElementException异常(2)获取但是不移除①peek()获取队列的投,但是不移除队列的头,如果次队列为空,则返回null。②element()获取队列的头,但是不移除队列的头,如果队列为空,则将跑出NoSuchElementException异常。(3)添加元素的方法offer原创 2020-09-28 16:44:17 · 1478 阅读 · 0 评论 -
深度优先与广度优先的区别
区别:(1)首先二叉树的深度优先遍历的非递归的通用做法是采用栈,广度优先遍历的非递归做法是采用队列。(2)深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次(二叉树的深度优先遍历比较特殊,可以细分为先序遍历,中序遍历,后序遍历)。 广度优先遍历:又叫层次遍历从上往下对每一层依次访问,在每一层中,从左往右(也可以从右往左)访问节点,访问完一层就继续访问下一层,直到没有节点可以访问为止。(3)深度优先搜索算法,:不全部保留节点,占用空间少,有回溯操作(即...原创 2020-09-28 14:12:57 · 21699 阅读 · 0 评论