IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 排序算法之:优先队列 -> 正文阅读

[数据结构与算法]排序算法之:优先队列

优先队列还蛮有意思.不过很多书看了以后也有点晕,所以这里写一篇心得来做个注解。

本质上就是每次排好序的队列。所以如果数据不多,我可以用任何数据结构排序,而如果数据比较多,那就应该用api中的二叉树数据结构。

通常队列是按照先后顺序,进行入列\出列操作.但是一旦入列以后,就没有办法再调整了.

?

?比如这个队列,就只能按照排列顺序出去.

假如我们要求有顺序,比如按照最大的出去怎么办?

显然每次,把队列里面的数据重新排列就行了.一种办法就是把队列数据都拿出来,然后进行排序,然后再入列.

新来一个数据,也需要进行重新排列.

这样的话,如果队列规模不大,那么在内存中是可以承受的.

但是如果在某些场景中,需要保持一个巨量的数据在内存中,那么把内存中这个队列每次都重新排列就不合适了.

但是对于一般的应用,我可以完全不用二叉堆来实现.完全可以用数组来实现

那么对于巨量的数据,都知道用树实现是比较合适的.对于已经排好的顺序,新来的数据,只需要和其中的部分结点数据进行比较就可以了.不涉及到内存中大规模数据的复制\移动等等操作.

优先队列的优先就是comparable接口的实现方式.

_____________________________________________________________________________

排序算法附注:

? ? ? ? 冒泡排序、插入排序、选择排序、快速排序(C语言的qsort,C++的sort函数)、归并排序(merge)

? ? ? ? 以及这一次的优先队列。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 19:09:52  更:2022-07-20 19:10:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:15:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码