- 2024-10-28算法的学习笔记—滑动窗口的最大值(牛客JZ59)
- 2024-10-23每日算法一练:剑指offer——数组篇(4)
数据流中的中位数 中位数 是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2+3)/2=2.5设计一个支持以下两种操作的数据结构:voidaddNum(intnum) -从数据
- 2024-10-08八大排序--05堆排序
假设数组arr[]={5,7,4,2,0,3,1,6},请通过插入排序的方式,实现从小到大排列:方法:①利用完全二叉树构建大顶堆; ②对顶元素和堆底元素进行交换,除堆底元素之外其余元素继续构造大顶堆; ③重复步骤②,直到所有元素都不参与构建,整个数组排序完成【完全
- 2024-09-05基于C语言的堆排序算法
一、堆排序概述 堆排序是一种基于二叉堆数据结构的高效排序算法。它具有稳定的时间复杂度为O(nlogn),适用于大规模数据的排序。堆排序具有原地排序的特点,即不需要额外的存储空间,几个指针变量使用O(1)空间,元素交换和堆化操作都是在原数组上进行的。然而,堆排序的
- 2024-08-16详解堆排序(内附代码实现)
堆排序有两个过程下标为i的节点的父节点下标:(i-1)/2整除下标为i的节点的左孩子下标:i*2+1下标为i的节点的右孩子下标:i*2+2待排序序列为: 23814910716141.建大顶堆 首先建立无序堆 然后建立大顶堆:从右往左,从下往上,递归的选择子节点最大的往上浮首先14大
- 2024-03-03大顶堆,小顶堆--优先队列,示例
有一个数组,要求找出最大的3个数,最小的4个数。 小顶堆,从大到小排序,筛选最小的N个数。//创建一个小顶堆std::priority_queue<int,std::vector<int>,std::greater<int>>min_heap; 大顶堆,从小到大排序,筛选最大的N个数。//创建一个大顶堆std::priori
- 2023-12-17[LeetCode] LeetCode378. 有序矩阵中第K小的元素
题目描述思路:Top-K问题+大顶堆使用大顶堆求第K小的元素。方法一:classSolution{publicintkthSmallest(int[][]matrix,intk){//1.使用大顶堆PriorityQueue<Integer>heap=newPriorityQueue<>((e1,e2)->e2-e1);for(inti
- 2023-10-08关于大顶堆和小顶堆习题的解决
好吧,不得不承认的是,我之前对于堆的知识确实没理解,现在急用它,就急学!一般的习题的话,就是要求我们判断某个序列,是不是大顶堆或者小顶堆。小顶堆要求,k(i)≤k(2i)且k(i)≤k(2i+1)大顶堆要求,k(i)≥k(2i)且k(i)≥k(2i+1)就只需要这两个条件就能判断顶堆是否成立啦~~
- 2023-08-06数据结构:堆 heap
堆分为小顶堆和大顶堆,其本质是一颗完全二叉树,不同点在于:除叶子节点外,小顶堆的每个父节点的key都要比其左右两个子节点的key小;大顶堆的每个父节点的key都要比其左右两个子节点的key大。其中,key是节点的取值,index为节点在树中的索引或者位置。小顶堆/大顶堆的特点在于,其根节点一定
- 2023-02-22大顶堆和小顶堆
1.什么是堆、大顶堆和小顶堆堆是一种非线性结构,可以把堆看作一棵二叉树,也可以看作一个数组,即:堆就是利用完全二叉树的结构来维护的一维数组。堆可以分为大顶堆和小顶堆:
- 2023-01-13数据结构与算法 -> 大顶堆与小顶堆
一、大顶堆大顶堆是一种数据结构,它是一颗完全二叉树,并且满足以下性质:每个节点的值都大于或等于它的子节点的值因此,大顶堆的根节点(也称为堆顶)总是最大的元素二、小
- 2023-01-02大顶堆小顶堆
大顶堆/小顶堆转载:https://www.cnblogs.com/remixnameless/p/15906978.html概念堆这种数据结构的应用场景非常多,最经典的莫过于堆排序。堆排序是一种原地的、时间复杂
- 2022-10-04Java PriorityQueue(优先队列)实现大顶堆和小顶堆
JavaPriorityQueue类是一种队列数据结构实现它与遵循FIFO(先进先出)算法的标准队列不同。//默认为小顶堆PriorityQueue<Integer>minHeap=newPriorityQueue<>(k,(a,b
- 2022-09-26堆排序
简介堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。堆是具有以下性质的完全二叉树