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

排序-堆排序

给你一个整数数组 nums,请你将该数组升序排列。

输入:nums = [5,2,3,1]
输出:[1,2,3,5]
输入:nums = [5,1,1,2,0,0]
输出:[0,0,1,1,2,5]

思路直接看我录制的视频吧 算法-堆排序_哔哩哔哩_bilibili

实现代码如下所示:

class Solution {public int[] sortArray(int[] nums) {if (nums == null || nums.length == 1) {return nums;}headSort(nums);return nums;}private void headSort(int[] nums) {for (int i = (nums.length - 1) / 2; i >=0; i--) {adjustHead(nums, i, nums.length);}for (int i = nums.length - 1; i >0; i--) {int temp = nums[i];nums[i] = nums[0];nums[0] = temp;adjustHead(nums, 0, i);}}private void adjustHead(int[] nums, int parent, int length) {int temp = nums[parent];int maxChildIndex = parent * 2 + 1;while (maxChildIndex < length) {int rightChild = maxChildIndex + 1;if (rightChild < length && nums[rightChild] > nums[maxChildIndex]) {maxChildIndex++;}if (maxChildIndex < length && nums[maxChildIndex] < temp) {break;}nums[parent] = nums[maxChildIndex];parent = maxChildIndex;maxChildIndex = maxChildIndex * 2 + 1;}nums[parent] = temp;}
}

相关文章:

排序-堆排序

给你一个整数数组 nums&#xff0c;请你将该数组升序排列。 输入&#xff1a;nums [5,2,3,1] 输出&#xff1a;[1,2,3,5] 输入&#xff1a;nums [5,1,1,2,0,0] 输出&#xff1a;[0,0,1,1,2,5] 思路直接看我录制的视频吧 算法-堆排序_哔哩哔哩_bilibili 实现代码如下所示&…...

挑战Open AI!!!马斯克宣布成立xAI.

北京时间7月13日凌晨&#xff0c;马斯克在Twitter上宣布&#xff1a;“xAI正式成立&#xff0c;去了解现实。”马斯克表示&#xff0c;推出xAI的原因是想要“了解宇宙的真实本质”。Ghat GPT横空出世已有半年&#xff0c;国内外“百模大战”愈演愈烈&#xff0c;AI大模型的现状…...

HTTP协议学习笔记1

初识HTTP 输入网址进入网页过程发生了什么&#xff1f; DNS解析&#xff1a;浏览器会向本地DNS服务器发出域名解析请求&#xff0c;如果本地DNS服务器中没有对应的IP地址&#xff0c;则会向上级DNS服务器继续发出请求&#xff0c;直到找到正确的IP地址为止。 建立TCP连接&…...

【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解

系列文章传送门&#xff1a; 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 PS&#xff1a;本要求基于…...

【学习日志】2023.Aug.6,支持向量机的实现

2023.Aug.6&#xff0c;支持向量机的实现 参考了大佬的代码&#xff0c;但有些地方似乎还有改进的空间&#xff0c;我加了注释 #codingutf-8 #Author:Dodo #Date:2018-12-03 #Email:lvtengchaopku.edu.cn #Blog:www.pkudodo.com数据集&#xff1a;Mnist 训练集数量&#xff1…...

LeetCode_动态规划_中等_1749.任意子数组和的绝对值的最大值

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 给你一个整数数组 nums 。一个子数组 [numsl, numsl1, …, numsr-1, numsr] 的 和的绝对值 为 abs(numsl numsl1 … numsr-1 numsr) 。请你找出 nums 中和的绝对值 最大的任意子数组&#xff08;可能为空…...

无涯教程-Perl - 环境配置

在开始编写Perl程序之前&#xff0c;让我们了解如何设置我们的Perl环境。 您的系统更有可能安装了perl。只需尝试在$提示符下给出以下命令- $perl -v 如果您的计算机上安装了perl&#xff0c;那么您将收到以下消息: This is perl 5, version 16, subversion 2 (v5.16.2) b…...

QT显示加载动画

文章目录 一、前言二、使用1.FormLoading.h2.FormLoading.cpp 一、前言 项目中在下发指令时&#xff0c;结果异步返回&#xff0c;可能需要一段时间&#xff0c;因此需要用到加载动画。 用的比较简单&#xff0c;就是新建Widget子窗口&#xff0c;放一个Label&#xff0c;使用…...

原型模式(C++)

定义 使用原型实例指定创建对象的种类&#xff0c;然后通过拷贝这些原型来创建新的对象。 应用场景 在软件系统中&#xff0c;经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化&#xff0c;这些对象经常面临着剧烈的变化&#xff0c;但是它们却拥有比较稳定一致的…...

web浏览器打开本地exe应用

一、如何使web浏览器打开本地exe应用&#xff1f; 浏览器打开本地exe程序我们可以使用ActiveXObject方法&#xff0c;但是只支持IE&#xff0c;谷歌、火狐等浏览器并不支持此操作。 那问题来了&#xff0c;我们又该如何操作&#xff1f; 经过本博主的不断学习探索终于找到了一…...

微信小程序如何配置并使用less?

1&#xff0c;检查微信开发者工具&#xff08;工具版本1.03&#xff09;————这步很重要不然后面按步骤实行后会发现急死你也还是不管用&#xff0c;我之前死在过这一步&#xff0c;所以大家不要再次踩坑了 ~ ~ 。。。 2&#xff0c;在VScode中下载Less插件 3&#xff0c;…...

【Spring】反射动态修改Bean实例的私有属性值

Cannot cast org.springframework.http.client.InterceptingClientHttpRequestFactory to org.springframework.http.client.OkHttp3ClientHttpRequestFactory 由于RestTemplate在自定义初始化时顺序比较早&#xff0c;想在启动后跟进yum或者注解配置修改初始化的值时&#xff…...

MySQL DDL 数据定义

文章目录 1.创建数据库2.删除数据库3.查看所有数据库4.查看当前数据库5.选择数据库6.创建数据表7.查看 MySQL 支持的存储引擎和默认的存储引擎8.删除数据表9.查看数据库的数据表10.查看表结构11.查看建表语句12.重命名数据表13.增加、删除和修改字段自增长14.增加、删除和修改数…...

Ventoy 设置VTOY_MAX_SEARCH_LEVEL = 0只扫描U盘根目录 不扫码子目录

在镜像分区/media/yeqiang/Ventoy创建目录ventory&#xff0c;目录内创建文件ventoy.json&#xff0c;内容如下 {"control":[{ "VTOY_MAX_SEARCH_LEVEL": "0" }] }采用系统默认的utf-8编码。 参考&#xff1a; search path . Ventoy Plugin.e…...

vue3父子同信的双向数据实现

前言&#xff1a; 我们知道的是&#xff0c;父传子的通信&#xff0c;和子传父的通信&#xff0c;那如何实现父子相互通信的呢&#xff1f; (vue3中)v-model 和modelValue结合使用,在vue2中使用的是.sync 在父组件的写法 <template> <Son v-model"num" /&…...

Shiro是什么?为什么要用Shiro?

前言 本文小新为大家带来 Shiro入门概述 相关知识&#xff0c;具体内容包括Shiro是什么&#xff0c;为什么要用 Shiro&#xff0c;Shiro与Spring Security 的对比&#xff0c;Shiro的基本功能&#xff08;包括&#xff1a;基本功能框架&#xff0c;功能简介&#xff09;&#x…...

Vue3+Vite+Pinia+Naive后台管理系统搭建之九:layout 动态路由布局

前言 如果对 vue3 的语法不熟悉的&#xff0c;可以移步Vue3.0 基础入门&#xff0c;快速入门。 1. 系统页面结构 由 menu&#xff0c;面包屑&#xff0c;用户信息&#xff0c;页面标签&#xff0c;页面内容构建 ​ 2. 创建页面 创建 src/pages/layout.vue 布局页 创建 sr…...

从零开始学Python(Ⅰ)基本变量与数据类型

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Python的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.关于Python的基本知识&#xff08;变量…...

SQL ASNI where from group order 顺序 where和having,SQL底层执行原理

SQL语句执行顺序&#xff1a; from–>where–>group by -->having — >select --> order 第一步&#xff1a;from语句&#xff0c;选择要操作的表。 第二步&#xff1a;where语句&#xff0c;在from后的表中设置筛选条件&#xff0c;筛选出符合条件的记录。 …...

Mac M2 Ventura(13.3) 新机 安装Cocoapods

1.执行命令&#xff1a; sudo gem install cocoapods 因为是新机&#xff0c;内置的ruby版本是&#xff08;2.6.0&#xff09;太低&#xff0c;会报错 所以需要安装新的ruby版本 2.如果已经安装了低版本的homebrew&#xff0c;可以先卸载&#xff1a; 卸载&#xff1a; /b…...

Git Worktree CLI工具:告别分支切换焦虑,实现高效并行开发

1. 项目概述与核心价值如果你和我一样&#xff0c;长期在多个Git分支间穿梭&#xff0c;同时维护着几个不同的功能特性或修复补丁&#xff0c;那你一定对那种在分支间反复切换、代码状态混乱、甚至不小心提交到错误分支的“切分支焦虑症”深有体会。传统的git checkout或git sw…...

Arm Neoverse CMN-700缓存一致性互连网络架构解析

1. Arm Neoverse CMN-700架构概述Arm Neoverse CMN-700是Arm公司推出的新一代缓存一致性互连网络&#xff08;Coherent Mesh Network&#xff09;解决方案&#xff0c;专为高性能计算、云计算和基础设施应用设计。作为多核处理器系统中实现高效数据共享的关键基础设施&#xff…...

大语言模型并行推理技术Hogwild! Inference解析

1. 大语言模型并行推理的技术挑战在传统的大语言模型推理过程中&#xff0c;文本生成采用的是严格的自回归方式&#xff0c;即每个token的生成都依赖于之前所有token的输出。这种串行模式虽然保证了生成的连贯性&#xff0c;但也带来了显著的性能瓶颈。以1750亿参数的GPT-3为例…...

基于CircuitPython与Adafruit IO的DIY智能门铃摄像头全栈开发指南

1. 项目概述与核心思路几年前&#xff0c;我还在用传统的猫眼和门铃&#xff0c;每次快递员敲门或者有访客&#xff0c;都得急匆匆跑到门口&#xff0c;从那个小小的、视野受限的孔洞里费力张望。后来市面上出现了各种智能门铃摄像头&#xff0c;功能是挺诱人&#xff0c;但要么…...

浏览器扩展实现AI提示词高效管理:从模板变量到工作流优化

1. 项目概述与核心价值最近在折腾AI工具链&#xff0c;发现一个痛点&#xff1a;每次和ChatGPT、Claude或者本地部署的大模型对话时&#xff0c;那些精心调试好的提示词&#xff08;Prompt&#xff09;总是散落在各个聊天窗口里&#xff0c;要么就是得手动复制粘贴&#xff0c;…...

别再让电机乱转了!手把手教你用STM32的TIM3和L298N实现精准PWM调速(附完整工程源码)

STM32与L298N电机控制实战&#xff1a;从原理到精准调速的完整指南 在智能小车、机械臂或自动化设备开发中&#xff0c;直流电机控制是最基础却最容易出问题的环节。很多初学者在第一次连接STM32和L298N驱动模块时&#xff0c;都会遇到电机不转、乱转或速度不稳的情况。本文将彻…...

GPT4All-Chat本地部署与性能优化深度解析

GPT4All-Chat本地部署与性能优化深度解析 【免费下载链接】gpt4all-chat gpt4all-j chat 项目地址: https://gitcode.com/gh_mirrors/gp/gpt4all-chat GPT4All-Chat是一款基于GPT-4架构的本地化AI对话应用&#xff0c;采用C和Qt框架构建&#xff0c;支持跨平台运行&…...

iOS 27 开放 AI 生态@ACP#小型化扩展黄金风口,IX8008全面超越 ASM2806,铸就嵌入式 AI 扩展核心

苹果 iOS 27 系统全面开放第三方 AI 模型自由切换&#xff0c;支持 Claude、Gemini、DeepSeek 等主流大模型深度接入&#xff0c;iPhone/iPad 成为全球最大 AI 流量入口。这一变革引爆小型 AI 扩展坞、嵌入式 AI 终端、便携存储扩展、迷你主机、车载 AI五大硬件新机遇。作为连接…...

保姆级教程:在Spring Boot项目里正确配置Hutool和BouncyCastle搞定SM4国密加密

Spring Boot项目集成SM4国密加密全流程实战指南 在金融、政务等对数据安全要求严格的领域&#xff0c;国密算法正逐步取代国际通用加密标准成为首选方案。作为国内广泛使用的SM4分组密码算法&#xff0c;其128位分组长度和128/192/256位密钥长度设计&#xff0c;在保证安全性的…...

J-Link V8变砖别慌!手把手教你用SAM-BA 2.14救活AT91SAM7S64芯片

J-Link V8救砖实战&#xff1a;用SAM-BA 2.14拯救AT91SAM7S64芯片全指南 当你的J-Link V8调试器突然"变砖"——LED灯熄灭、电脑无法识别、所有功能瘫痪时&#xff0c;那种感觉就像外科医生在手术台上突然失去所有仪器。但别急着宣布它的"死亡"&#xff0c;…...