当前位置: 首页 > news >正文

Java堆排序

目录

  • PriorityQueue
  • 自己实现

PriorityQueue

public class PriorityQueueMain {public static void main(String[] args) {int[] temp = {40, 2, 33, 26, 35, 8, 8, 26, 29, 2};PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();for (int i = 0; i < temp.length; i++) {priorityQueue.offer(temp[i]);}while (!priorityQueue.isEmpty()) {System.out.format("%d ", priorityQueue.poll());}}
}

自己实现

详细原理,只是在push的时候他写错了

public class ArraySmallHeap {public static void main(String[] args) {int[] temp = {40, 2, 33, 26, 35, 8, 8, 26, 29, 2};heap = new int[temp.length];for (int j : temp) {push(j);}for (int i = 0; i < temp.length; i++) {System.out.format("%d ", pop());}}private static int[] heap;private static int size;private static void down(int k) {int t = k;int l = k << 1, r = (k << 1) + 1;if (l <= size && heap[t] > heap[l]) {t = l;}if (r <= size && heap[t] > heap[r]) {t = r;}if (t != k) {int temp = heap[k];heap[k] = heap[t];heap[t] = temp;down(t);}}private static void up(int k) {int u = k / 2;if (u >= 1 && heap[k] < heap[u]) {int temp = heap[k];heap[k] = heap[u];heap[u] = temp;up(u);}}public static void push(int v) {heap[++size] = v;up(size);}public static int pop() {int v = heap[1];heap[1] = heap[size--];down(1);return v;}
}

相关文章:

Java堆排序

目录 PriorityQueue自己实现 PriorityQueue public class PriorityQueueMain {public static void main(String[] args) {int[] temp {40, 2, 33, 26, 35, 8, 8, 26, 29, 2};PriorityQueue<Integer> priorityQueue new PriorityQueue<>();for (int i 0; i <…...

GitHub的基本使用教程

GitHub是一个基于web的版本控制和协作平台。它允许开发人员将他们的代码存储库存储在云中&#xff0c;并与其他人一起进行工作。GitHub还提供了各种工具和功能来帮助开发人员管理和组织他们的代码项目&#xff0c;包括拉出请求、问题跟踪、代码评论等等。此外&#xff0c;它托管…...

objectMapper.configure 方法的作用和使用

objectMapper.configure 方法是 Jackson 提供的一个用于配置 ObjectMapper 对象的方法。ObjectMapper 是 Jackson 库的核心类&#xff0c;用于将 Java 对象与 JSON 数据相互转换。 configure 方法的作用是设置 ObjectMapper 的配置选项&#xff0c;例如设置日期格式、设置序列…...

面试热题(x的平方根)

给你一个非负整数 x &#xff0c;计算并返回 x 的 算术平方根 。 由于返回类型是整数&#xff0c;结果只保留 整数部分 &#xff0c;小数部分将被 舍去 。 注意&#xff1a;不允许使用任何内置指数函数和算符&#xff0c;例如 pow(x, 0.5) 或者 x ** 0.5 。 这道题虽然是简单题…...

食品溯源合约 -- 智能合约实例

前提 Roles: 实现对用户地址的角色权限管控,添加、删除角色。 Producer: 生产商角色管控。 ... FoodInfoItem: 食品信息管控。生产商、中间商、超市添加食品信息。 Trace:食品溯源合约,主要负责对以上几个合约的统筹协作。 Roles // SPDX-License-Identifier: MIT pragm…...

SAP系统中二代增强提供了4中增强函数的查找方法

1 Introduction The second enhancement is used widely by sap .We can set break-point in the function . The function is in the SMOD FG. 2 Detail SAP系统中二代增强提供了4中增强函数的查找方法&#xff1a; MODX_ALL_ACTIVE_MENUENTRIES (菜单增强) MODX_FUNCTION…...

RabbitMQ-SpringBoot2

1.依赖引用 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> 2.配置文件 spring: rabbitmq: host: 192.168.2.17 port: 5672 usernam…...

MyBatis核心 - SqlSession如何通过Mapper接口生成Mapper对象

书接上文 MyBatis – 执行流程 我们通过SqlSession获取到了UserMapper对象&#xff0c;代码如下&#xff1a; // 获取SqlSession对象 SqlSession sqlSession sqlSessionFactory.openSession();// 执行查询操作 try {// 获取映射器接口UserMapper userMapper sqlSession.get…...

【Git】标签管理与Git Flow模型

目录 一、操作标签 二、推送标签 三、删除标签 四、Git Flow模型分支设计 一、操作标签 git tag # 查看有哪些标签 git tag [name] # 给最近一次commit打标签 git tag [name] [commitID] #给指定的commit打标签 git tag -a [name] -m desc # 打标签并添加描述 二、推送标…...

日志分析和流量分析

目录 [陇剑杯 2021]日志分析&#xff08;问1&#xff09; [陇剑杯 2021]日志分析&#xff08;问2&#xff09; [陇剑杯 2021]日志分析&#xff08;问3&#xff09; [陇剑杯 2021]简单日志分析&#xff08;问1&#xff09; [陇剑杯 2021]简单日志分析&#xff08;问3&#…...

typescript基础之关键字type

TypeScript的type是一个关键字&#xff0c;用来定义一个类型别名https://www.typescripttutorial.net/typescript-tutorial/typescript-types/。类型别名可以给一个已有的类型起一个新的名字&#xff0c;或者组合多个类型成为一个新的类型。例如&#xff1a; // 给string类型起…...

无人机航测技术有何特点?主要应用在哪些方面?

无人机航测是航空摄影测量的一种&#xff0c;主要面向低空遥感领域&#xff0c;具有成本低、快速高效、适用范围广等特点。目前&#xff0c;无人机航测主要应用于地形测绘、城市数字化建设、工程建设等方面。 无人机航测技术的特点 1、作业成本低 传统的人工测量技术主要利用…...

24届近5年杭州电子科技大学自动化考研院校分析

今天给大家带来的是杭州电子科技大学控制考研分析 满满干货&#xff5e;还不快快点赞收藏 一、杭州电子科技大学 学校简介 杭州电子科技大学&#xff08;Hangzhou Dianzi University&#xff09;&#xff0c;简称“杭电”&#xff0c;位于杭州市&#xff0c;是浙江省人民政…...

调整vscode

调整vscode 连wifi linux连接wifi...

Spring xml 方式整合mybatis 第三方框架

Spring整合MyBatis MyBatis提供了mybatis-spring.jar专门用于两大框架的整合。 ①&#xff1a;第一步&#xff1a; 导入MyBatis整合Spring的相关坐标&#xff1b; <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --> <dependency><groupI…...

RabbitMQ(二) - RabbitMQ与消息发布确认与返回、消费确认

RabbitMQ消息确认 SpringBoot与RabbitMQ整合后&#xff0c;对RabbitClient的“确认”进行了封装、使用方式与RabbitMQ官网不一致&#xff1b; 消息发布确认 生产者给交换机发送消息后、若是不管了&#xff0c;则会出现消息丢失&#xff1b; 解决方案1&#xff1a; 交换机接受…...

操作指南 | 如何使用Chainlink喂价功能获取价格数据

Chainlink的去中心化预言机网络中的智能合约包含由运行商为其他智能合约&#xff08;DApps&#xff09;使用或截取所持续更新的实施价格数据。其中有两个主要架构&#xff1a;喂价和基础要求模型。此教程将会展现如何在Moonbeam、Moonriver或是Moonbase Alpha测试网上使用喂价功…...

Pandaer的iPhone手机壳

哇塞&#xff0c;Pandaer的设计太棒了&#xff01;手机壳的花样多到让我眼花缭乱&#xff0c;好多系列设计都很有意思&#xff0c;让人有集齐的冲动。我最近入手了几个iPhone的手机壳&#xff0c;它有亮色和透明的款式&#xff0c;亮色的壳内部也是亮的&#xff0c;因为手机壳全…...

将自己的网站免费发布到互联网上【无需公网IP】

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…...

浅谈 Python中if __name__ == ‘__main__‘:的工作原理

为了理解if __name__ __main__:的工作原理&#xff0c;我们需要先了解Python中的特殊变量__name__。 每个Python模块都有一个内置的变量__name__。这个变量的值取决于如何执行模块&#xff1a; 如果模块是被直接运行的&#xff08;例如&#xff0c;你使用命令python myscrip…...

告别手改脚本!用CANoe Panel面板做个变量控制台,测试效率翻倍

告别手改脚本&#xff01;用CANoe Panel面板打造智能变量控制台 在车载网络测试领域&#xff0c;效率提升往往隐藏在那些被忽视的日常操作细节中。当测试工程师频繁打开CAPL脚本修改超时阈值、调整诊断ID或切换测试模式时&#xff0c;不仅打断了工作流&#xff0c;更在团队协作…...

独立开发者如何借助Taotoken多模型能力打造全能AI助手应用

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者如何借助Taotoken多模型能力打造全能AI助手应用 对于独立开发者或小型工作室而言&#xff0c;构建一个功能全面的AI助手…...

如何用applera1n免费绕过iOS激活锁:完整指南与操作教程

如何用applera1n免费绕过iOS激活锁&#xff1a;完整指南与操作教程 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 你是否购买了一部二手iPhone或iPad&#xff0c;却发现设备被原主人的Apple ID锁定&a…...

YimMenu:GTA V终极游戏增强工具完整实战手册

YimMenu&#xff1a;GTA V终极游戏增强工具完整实战手册 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...

技术视角:Sketchfab数据提取工具深度解析3D模型下载机制

技术视角&#xff1a;Sketchfab数据提取工具深度解析3D模型下载机制 【免费下载链接】sketchfab sketchfab download userscipt for Tampermonkey by firefox only 项目地址: https://gitcode.com/gh_mirrors/sk/sketchfab 在WebGL技术日益成熟的今天&#xff0c;Sketch…...

nnU-Net v2实战:从零开始配置环境与训练自定义医学影像数据集

1. 环境配置&#xff1a;搭建nnU-Net v2的基础舞台 第一次接触nnU-Net时&#xff0c;我踩过的最大坑就是环境配置。当时为了赶项目进度&#xff0c;直接用了现有的Python 3.8环境&#xff0c;结果在安装时各种报错&#xff0c;浪费了大半天时间。后来才发现&#xff0c;nnU-Net…...

基于语义搜索的AI代码理解工具copaw-code深度解析

1. 项目概述&#xff1a;一个面向代码搜索与理解的AI工具 最近在GitHub上看到一个挺有意思的项目&#xff0c;叫 QSEEKING/copaw-code 。乍一看这个标题&#xff0c;可能会有点摸不着头脑&#xff0c;“copaw”是什么&#xff1f;但结合“code”和项目托管在QSEEKING这个组织…...

结构化数字工作空间:提升创意工作效率的目录设计与自动化实践

1. 项目概述&#xff1a;一个为创意工作者量身定制的数字工作空间 如果你是一名设计师、开发者、内容创作者&#xff0c;或者任何需要处理大量数字资产、管理复杂项目流程的创意工作者&#xff0c;那么“Workspace-di-Yivo”这个名字可能会让你眼前一亮。这不仅仅是一个简单的文…...

Arduino nRF52 BLE开发:GATT服务与特征值配置实战详解

1. 项目概述如果你正在用Arduino和nRF52系列芯片&#xff08;比如nRF52832或nRF52840&#xff09;做蓝牙低功耗&#xff08;BLE&#xff09;开发&#xff0c;那你肯定绕不开GATT&#xff08;通用属性配置文件&#xff09;这一关。GATT是BLE通信的“语言规则”&#xff0c;它定义…...

开源大模型推理引擎Takeoff部署指南:从原理到生产实践

1. 项目概述&#xff1a;一个让大模型推理“起飞”的开源引擎 如果你正在为如何将那些动辄几十GB、几百亿参数的大语言模型&#xff08;LLM&#xff09;部署到生产环境而头疼&#xff0c;或者厌倦了为每一次API调用支付高昂的费用&#xff0c;那么今天聊的这个项目&#xff0c…...