特点:
1. 不是FIFO,而根据队列元素的优先级来调整顺序。
2。 通过二叉最小堆来实现
3. 因为要比较,所以PriorityQueue要么提供一个Comparator来比较,要么元素本身实现Comparable接口
基础:
最小堆: 它任意一个非叶子节点的权值,都不大于其左右子节点的权值。 堆顶是最小值
可以通过源码学习 PriorityQueue .
下面是一个应用案例:
某电商平台入驻了大量的商家,商家可以在平台销售商品,用户可以在平台的商家那里购买商品。用户付款后如果对购买到的商品不满意,可以向平台发起投诉。用户对某商家的某件商品的投诉记录会存储在一张表中,表结构如下:
列名 类型 备注
store_id int 商家id
product_id int 商品id
remark string 投诉记录
需求: 找到投诉记录最多的前 3 个商家,目的是在搜索时对其店铺进行降权处理.
思路:
1. 创建一个小根堆(PriorityQueue 默认就是小根堆)
2. 小根堆中元素的数量小于 3 的时候就直接向集合中添加元素
3. 当堆中的元素个数等于 3 的时候,通过 peek 方法取出堆顶元素(最小的那个)与当前遍历到的元素比较
4. 如果当前遍历到的元素大于堆顶元素,就把原堆顶元素移除,把当前元素加入堆中
5. 这样使得移除的元素都小于堆中的元素
6. 所以最后堆中保留下来的就是最大的N个元素
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和队列等抽象数据类型。 存储结构(物理结构):描述数据在计算机中如何具体存储。例如,数组的连续存储,链表的动态分配节点,树和图的邻接矩阵或邻接表表示等。 基本操作:针对每种数据结构,定义了一系列基本的操作,包括但不限于插入、删除、查找、更新、遍历等,并分析这些操作的时间复杂度和空间复杂度。 算法: 算法设计:研究如何将解决问题的步骤形式化为一系列指令,使得计算机可以执行以求解问题。 算法特性:包括输入、输出、有穷性、确定性和可行性。即一个有效的算法必须能在有限步骤内结束,并且对于给定的输入产生唯一的确定输出。 算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法,分支限界法等。 算法分析:通过数学方法分析算法的时间复杂度(运行时间随数据规模增长的速度)和空间复杂度(所需内存大小)来评估其效率。 学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
资源推荐
资源详情
资源评论
收起资源包目录
数据结构与常见算法,从递归开始,排序,至链表,队列,栈,树,图等。.zip (89个子文件)
open_suanfayushujujiegouxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcxxxxxxxxxxxxcxvcvcv
algi
.classpath 301B
.settings
org.eclipse.jdt.core.prefs 598B
org.eclipse.core.resources.prefs 53B
src
Test.java 256B
com
yc
bean2_sort2
selectionsort
SelectionSort.java 671B
bean3_datatype2
StackType
StackType.java 1KB
questions
Test2.java 2KB
Test3.java 1KB
Test1.java 2KB
StackType2.java 2KB
readme.txt 469B
bean2_sort4
shellsort
ShellSorter.java 736B
readme.txt 299B
bean3_datatype1
LinkedList
questions.txt 1KB
questions
Test2.java 1KB
Test3.java 1KB
Test1.java 2KB
LinkedListType.java 2KB
bean3_datatype3
tree1
BinarySearchTree
BinarySearchTree.java 9KB
readme.doc 28KB
BinaryNode.java 702B
tree3
redblackTree
RBTree.java 3KB
RBNode.java 687B
bitmap
readme.txt 21B
Bitmap.java 4KB
tree2
AvlTree
删除完节点11后的树结构及遍历的情况.xmind 24KB
AvlNode.java 581B
添加完节点后的树结构及遍历的情况.xmind 25KB
AvlTree.java 8KB
readme.txt 94B
array
questions
Test5.java 978B
Test6.java 566B
Test2.java 1KB
Test7.java 2KB
数组与排序.txt 2KB
Test4.java 682B
Test3.java 2KB
Test1.java 1KB
QueueType
QueueType.java 1KB
QueueType2.java 2KB
priorityqueue
PriorityQueueTest.java 4KB
ConplainLog.java 414B
ComplainCount.java 356B
readme.txt 1KB
bean1_recursion
Test5.java 827B
Test6.java 780B
Test2.java 520B
Test7.java 754B
Test4.java 990B
Test3.java 376B
Test1.java 305B
bean2_sort1
bubblesort
BubbleSort.java 594B
bean2_sort3
insertsort
InsertSorter.java 793B
bean2_sort5
mergesort
MergeSorter.java 2KB
bean2_sort6
quicksort
QuickSort.java 1KB
QuickSort1.java 1KB
bin
com
yc
bean2_sort2
selectionsort
SelectionSort.class 1KB
bean3_datatype2
StackType
questions
MyStack.class 2KB
MyQueue.class 1KB
MyStack2.class 1KB
Test3.class 987B
Test2.class 1KB
Test1.class 1KB
StackType2.class 2KB
StackType.class 2KB
readme.txt 469B
bean2_sort4
shellsort
ShellSorter.class 1KB
readme.txt 299B
bean3_datatype1
LinkedList
questions.txt 1KB
questions
Test3.class 2KB
Test2.class 1KB
Test1.class 2KB
LinkedListType.class 3KB
bean3_datatype3
QueueType
QueueType2.class 2KB
QueueType.class 2KB
bean1_recursion
Test6.class 896B
Test5.class 1KB
Test3.class 1009B
Test2.class 828B
Test7.class 1KB
Test4.class 1KB
Test1.class 674B
bean2_sort1
bubblesort
BubbleSort.class 1KB
bean2_sort3
insertsort
InsertSorter.class 1KB
bean2_sort5
mergesort
MergeSorter.class 2KB
bean2_sort6
quicksort
QuickSort1.class 2KB
QuickSort.class 2KB
.project 380B
J2EE企业级开发.xmind 1.24MB
共 89 条
- 1
资源评论
极致人生-010
- 粉丝: 2903
- 资源: 2822
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功