• 2025-01-14堆结构与堆排序
    测试链接:https://leetcode.cn/problems/sort-an-array/堆结构:是一颗完全二叉树分为大根堆和小根堆大根堆:每一颗子树最大值都在子树的根部小根堆:每一颗子树最小值都在子树的根部每一位父亲i的两个孩子的节点位置(若存在)分别为:i*2+1,i*2+2同理每一个孩子的父亲节点位置为:(i-1)
  • 2024-11-30积分的技巧(二)
            本文主要介绍针对三角函数积分中常见的形如、(为正整数)这种倍角积分的求解方法,也就是倍角法。其核心思想就是降幂,将高次幂的积分降为一次幂的积分,然后再次求解积分。        倍角法其实就是棣莫弗公式的巧用,我们来看一下棣莫弗公式,如下      
  • 2024-11-26代码随想录:四数相加 II
    代码随想录:四数相加II我还以为会有更快的速度呢。。没想到最佳答案就是n^2不过值得一提的,这题一开始可能会想到用multiset来解决重复出现的元素,但实际上,multiset的查询速度是logn,是不如用哈希表的,所以用unordered_map,用键值对的值来表示元素出现的次数。classSolution{publ
  • 2024-11-26【cesium重新梳理】1.cesium知识整理
    之前零零碎碎学过、用过cesium,但也没做记录,现在重新整理一下,方便学习回顾。1.cesium简介CesiumJS是一个开源JavaScript库,用于创建具有最佳性能、精度、视觉质量和易用性的世界级3D地球仪和地图。从航空航天到智能城市再到无人机,各行各业的开发人员都使用CesiumJS创建交互式We
  • 2024-11-23基于SSM + Vue + MySQL的问卷系统的设计与实现(源码+数据库+文档+部署讲解等)
    文章目录1.前言2.详细视频演示3.文档参考3.1论文参考3.2流程设计图3.3数据库表结构设计3.4系统测试部分4.项目运行截图5.技术框架5.1后端采用SpringBoot框架5.2前端框架Vue6.选题推荐毕设案例8.系统测试8.1系统测试的目的8.2系统功能测试9.代码参考10
  • 2024-11-23大模型在金融领域落地思路与实践
    导读恒生电子大模型在很多垂直领域均有落地的思路与实践,本文主要分享金融领域的典型案例,并结合案例进一步思考大模型在垂域实践落地的共性问题。前排提示,文末有大模型AGI-CSDN独家资料包哦!今天的介绍会围绕下面四点展开:恒生电子的大模型应用实践大模型时代的知识图谱
  • 2024-09-26【算法】贪心+堆排序实现大根堆及标准库容器类的融合使用
  • 2024-09-15「数组」堆排序 / 大根堆优化(C++)
    目录概述核心概念:堆堆结构数组存堆思路算法过程up()down()Code优化方案大根堆优化Code(pro)复杂度总结概述在「数组」快速排序/随机值优化|小区间插入优化(C++)中,我们介绍了三种基本排序中的冒泡排序与分治思想结合的算法:快速排序。本文我们来讲第二种基本排
  • 2024-08-05大根堆和小根堆的介绍
    堆(Heap)的基本概念堆是一种完全二叉树(CompleteBinaryTree),其性质使得堆可以高效地支持以下操作:插入(Insert):将一个新元素加入到堆中。删除最大/最小元素(DeleteMax/Min):移除并返回堆中的最大(大根堆)或最小(小根堆)元素。获取最大/最小元素(GetMax/Min):返回堆中的最大(大根堆)或最小(小
  • 2024-08-02【数据结构】大根堆和小根堆
    大根堆实现逻辑从整棵树的最后一颗子树开始调整,每次都让根节点和左右孩子去比较,如果根节点比左右孩子的最大值要小,那么就将这两个值进行交换,然后此时这颗子树变成了大根堆,再看下一颗树然后对下一颗树进行相同的处理方法,后面的子树依次交换:当每棵子树都是大根堆的情况
  • 2024-07-15大根堆的实现
    publicstaticvoidswap(int[]arr,inti,intj){arr[i]=arr[i]^arr[j];arr[j]=arr[i]^arr[j];arr[i]=arr[i]^arr[j];}//建一个大根堆publicstaticclassMyMaxHeap{privateint[]heap;privatefinalintlimit;privateinthea
  • 2024-05-31堆排序(Heap sort)
    堆排序堆排序是简单选择排序的改进,改进点为如何让减少在选择的过程中比较的次数。1.堆的定义    堆是具有以下性质的完全二叉树:每个结点的值都大于(小于)等于其孩子节点的值,称为大根堆(小根堆)。例:   由堆的定义得知堆顶元素一定为最大(大根堆)或者最小值(小根堆)。
  • 2024-03-19【堆排序】(大根堆)
    敬信仰赤诚,敬少年滚烫的情钟voidheapify(inta[],intn,inti){//根据当前节点i进行堆调整,保证以i为根节点的子树符合最大堆的性质intlargest=i;//假设当前节点为最大值的索引intleft=2*i+1;//计算左孩子节点索引intright=2*
  • 2024-02-12对顶堆
    介绍用来求解第K大的数,首先用一个大根堆维护那些小于第K大数的数字,用小根堆来维护第K大以及比第K大还大的数字。若想求解第K大数,直接访问小根堆的堆顶即可,当小根堆的堆的数量小于K时,将大根堆的数字从堆顶以此插入小根堆(因为大根堆中根节点是最大的数字,而大根堆的数均比小根堆的
  • 2024-01-22Ybt 金牌导航 6.1.F 大根堆 / BZOJ 4919 大根堆(LIS,启发式合并)
    题意简述有一个以\(1\)为根的有根树,每个点有权值\(v_i\)。你需要选出一个点集\(S\),使得点集里任意两个元素\(x,y\),若\(x\)在原树上是\(y\)的祖先,则要满足\(v_x>v_y\)。求选出的点集的最大大小是多少。解法原题限制相当于:在选出的点集构成的新树\(T\)中,每个点到根节
  • 2024-01-19912.排序数组--堆排序
    1.题目介绍给你一个整数数组nums,请你将该数组升序排列。示例1:输入:nums=[5,2,3,1]输出:[1,2,3,5]示例2:输入:nums=[5,1,1,2,0,0]输出:[0,0,1,1,2,5]2.题解2.1堆排序思路题目给了我们一个vector数组,要使用堆排序,我们首先要创建一个大根堆,再在这个大根堆的基础上对数
  • 2023-12-14python heapq 模块
    堆的概念堆是用数组表示的二叉树,分为大根堆和小根堆:大根堆是堆顶元素最大的堆,小根堆是堆顶元素最小的堆 堆的建立堆用列表来表示。在往堆中加入元素时,在列表最后加入一个元素并与其父节点比较(n/2位置)看是否需要进行交换,然后层层比较直到根节点pythonheapq#建立小根堆
  • 2023-12-10大根堆和小根堆
    #include<iostream>usingnamespacestd;inth[1000000];intz=0;//z表示数列中有几个元素voidup(intx){ while(x>1&&h[x]<h[x/2]){ swap(h[x],h[x/2]); x/=2; }}voiddown(intx){ while(x*2<=z){ intt=x*2; if(t+1<=z&&
  • 2023-12-06第14章. 堆
    堆(Heap)堆(Heap)是一种树状的数据结构(不要跟内存模型中的"堆空间"混淆),常见的堆实现:堆的一个重要性质:任意节点的值总是>=(或<=)子节点的值:如果任意节点的值总是>=子节点的值,称为最大堆、大根堆、大顶堆如果任意节点的值总是<=子节点的值,称为最小堆、小根堆、小顶堆最
  • 2023-11-262023年11月第四周总结
    堆堆是一种完全二叉树,也是一种优先级队列堆分为大根堆和小根堆,大根堆即对于每一颗树,它的父亲节点的值,一定大于它的孩子节点的值,左右节点的值不用管它的顺序。小根堆同理。写了一道可以用堆这种数据结构求解的题目,即找数组中第k大的数,要求时间复杂度为O(N)。力扣题目链接解题思
  • 2023-10-29大根堆/小根堆
    #include<iostream>#include<algorithm>#include<vector>#include<queue>#include<random>#include"util.h"usingnamespacestd;structPoint{intx,y;//priority_queue<Point>大根堆需要重载小于号boolo
  • 2023-09-30堆的应用
    前言本文针对CSP-S2/NOIP复习,重点在在哪用、怎么写,底层原理和实现不是重点。堆的概念和应用情景堆是一种可以在\(O(\logn)\)的时间内维护一个最值的数据结构,维护最大值的称为大根堆,维护最小值的称为小根堆。堆的应用只有一个,就是求最值,但求什么最值、求出最值后怎么用,需