堆排序
目录
堆排序(不稳定):
代码实现:
思路分析:
总结:
堆排序(不稳定):
如果想要一段数据从小到大进行排序,则要先建立大根堆,因为这样每次堆顶上都能取到数据中最大的,可以交换到一段数据最后面。
代码实现:
public static void heapSort(int[] arr) {createHeap(arr);int end = arr.length - 1;while(end > 0) {swap(arr,0,end);siftDown(arr,0,end);end--;}}//建立大根堆public static void createHeap(int[] arr) {for (int i = (arr.length-1-1) / 2; i >= 0 ; i--) {siftDown(arr,i, arr.length);}}//向下调整private static void siftDown(int[] arr,int parent, int k) {int child = 2 * parent + 1;while(child < k) {if(child + 1 < k && arr[child + 1] > arr[child]) {child++;}if(arr[child] > arr[parent]) {//交换swap(arr,parent,child);parent = child;child = 2 * parent + 1;}else {break;}}}private static void swap(int[] arr,int i,int j) {int tmp = arr[i];arr[i] = arr[j];arr[j] = tmp;}
思路分析:

红色代表数组下标。
首先,想要从小到大排序,在堆排序开始之前,先对数据建立一个大根堆,之后,交换0下标和数据末尾的值,这样最后一个下标的值得到的是该段数据中最大的值了,再从0下标位置开始向下调整这个堆,以此往复,当 end 为 0 时停止。此时从上往下,从左往右得到的就是升序的数据了。
总结:
排升序要建大堆,排降序建小堆。
相关文章:
堆排序
目录 堆排序(不稳定): 代码实现: 思路分析: 总结: 堆排序(不稳定): 如果想要一段数据从小到大进行排序,则要先建立大根堆,因为这样每次堆顶上都能…...
【MySQL】我在广州学Mysql 系列—— 数据备份与还原
ℹ️大家好,我是练小杰,今天周一,过两天就是元宵节了,今年元宵节各位又要怎么过呢!! 本文主要对Mysql数据库中的数据备份与还原内容进行讨论!! 回顾:👉【MySQ…...
【LeetCode Hot100 双指针】移动零、盛最多水的容器、三数之和、接雨水
双指针 1. 移动零题目描述解题思路关键思路:步骤:时间复杂度:空间复杂度: 代码实现 2. 盛最多水的容器题目解析解题思路代码实现 3. 三数之和问题描述:解题思路:算法步骤:代码实现: …...
HTML应用指南:利用POST请求获取接入比亚迪业态的充电桩位置信息
在新能源汽车快速发展的今天,充电桩的分布和可用性成为了影响用户体验的关键因素之一。比亚迪作为全球领先的新能源汽车制造商,不仅在车辆制造方面取得了卓越成就,也在充电基础设施建设上投入了大量资源。为了帮助用户更方便地找到比亚迪充电桩的位置,本篇文章,我们将探究…...
Android车机DIY开发之软件篇(十二) AOSP12下载编译
Android车机DIY开发之软件篇(十二) AOSP12下载编译 sudo apt-get update sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib gmultilib libc6-dev-i386 lib32ncurses5-dev libx11-dev lib32z-dev ccache libgl1-mesa-…...
Jenkins+gitee 搭建自动化部署
Jenkinsgitee 搭建自动化部署 环境说明: 软件版本备注CentOS8.5.2111JDK1.8.0_211Maven3.8.8git2.27.0Jenkins2.319最好选稳定版本,不然安装插件有点麻烦 一、安装Jenkins程序 1、到官网下载相应的版本war或者直接使用yum安装 Jenkins官网下载 直接…...
【文本处理】如何在批量WORD和txt文本提取手机号码,固话号码,提取邮箱,删除中文,删除英文,提取车牌号等等一些文本提取固定格式的操作,基于WPF的解决方案
企业的应用场景 数据清洗:在进行数据导入或分析之前,往往需要对大量文本数据进行预处理,比如去除文本中的无关字符(中文、英文),只保留需要的联系信息(手机号码、固话号码、邮箱)。…...
Linux系统引导与服务管理
目录 一、Linux引导过程 1、引导过程概述 1.1、BIOS开机自检 1.2、MBR读取 1.3、加载引导加载程序(GRUB) 1.4、内核加载 1.5、初始化进程(init) 二、服务 2.1、服务类型 2.2、服务管理工具 三、运行级别 四、systemd …...
网络工程师 (30)以太网技术
一、起源与发展 以太网技术起源于20世纪70年代,最初由Xerox公司的帕洛阿尔托研究中心(PARC)开发。最初的以太网采用同轴电缆作为传输介质,数据传输速率为2.94Mbps(后发展为10Mbps),主要用于解决…...
react项目引入tailwindcss不生效解决方案
根据tailwindcss官网的操作步骤下来,样式未生效,且未报错,看了挺多的资料,还是并未解决。 后面在另一个项目尝试时,报了下面的问题: Error: PostCSS plugin tailwindcss requires PostCSS 8 根据这个链接…...
【C#】条件运算符
1.逻辑与(&&) Console.WriteLine(true && true);//true Console.WriteLine(true && false);//false Console.WriteLine(false && false);//false2.逻辑或(||) Console.WriteLine(true || true);//true Console.WriteLine(true || false);//t…...
Windows11+PyCharm利用MMSegmentation训练自己的数据集保姆级教程
系统版本:Windows 11 依赖环境:Anaconda3 运行软件:PyCharm 一.环境配置 通过Anaconda Prompt(anaconda)打开终端创建一个虚拟环境 conda create --name mmseg python3.93.激活虚拟环境 conda activate mmseg 4.安装pytorch和cuda tor…...
WPS计算机二级•文档的文本样式与编号
听说这是目录哦 标题级别❤️新建文本样式 快速套用格式🩷设置标题样式 自定义设置多级编号🧡使用自动编号💛取消自动编号💚设置 页面边框💙添加水印🩵排版技巧怎么分栏💜添加空白下划线&#x…...
Word中Ctrl+V粘贴报错问题
Word中CtrlV粘贴时显示“文件未找到:MathPage.WLL”的问题 Word的功能栏中有MathType,但无法使用,显示灰色。 解决方法如下: 首先找到MathType安装目录下MathPage.wll文件以及MathType Commands 2016.dotm文件,分别复…...
python-leetcode 24.回文链表
题目: 给定单链表的头节点head,判断该链表是否为回文链表,如果是,返回True,否则,返回False 输入:head[1,2,2,1] 输出:true 方法一:将值复制到数组中后用双指针法 有两种常用的列表实现&#…...
数据治理双证通关经验分享 | CDGA/CDGP备考全指南
历经1个月多的系统准备,本人于2024年顺利通过DAMA China的CDGA(数据治理工程师)和CDGP(数据治理专家)双认证。现将备考经验与资源体系化整理,助力从业者高效通关。 🌟 认证价值与政策背景 根据…...
3.4 学习UVM中的uvm_monitor类分为几步?
文章目录 前言1. 定义2. 核心功能3. 适用场景4. 使用方法5. 完整代码示例5.1 事务类定义5.2 Monitor 类定义5.3 Scoreboard 类定义5.4 测试平台 6. 代码说明7. 总结 前言 以下是关于 UVM 中 uvm_monitor 的详细解释、核心功能、适用场景、使用方法以及一个完整的代码示例&…...
Java在大数据处理中的应用:从MapReduce到Spark
Java在大数据处理中的应用:从MapReduce到Spark 大数据时代的到来让数据的存储、处理和分析变得前所未有的重要。随着数据量的剧增,传统的单机计算方式已经无法满足处理需求。为了解决这个问题,许多分布式计算框架应运而生,其中Ma…...
日常吐槽。
一、写在前面 stereopy日常出bug(github issue里得有一半的问题是我提的,当然也有可能是因为我菜),stereopy自己生成的anndata自己不能计算空间共现关系,还是靠squidpy才能计算。另外还要一些函数一开并行计算就报错,这里留一些s…...
2025最新版Node.js下载安装~保姆级教程
1. node中文官网地址:http://nodejs.cn/download/ 2.打开node官网下载压缩包: 根据操作系统不同选择不同版本(win7系统建议安装v12.x) 我这里选择最新版win 64位 3.安装node ①点击对话框中的“Next”,勾选同意后点…...
【限时决策窗口】ChatGPT Plus会员购买指南:避开3个高发误区,抓住GPT-4 Turbo+文件解析+自定义GPT三重红利期
更多请点击: https://intelliparadigm.com 第一章:ChatGPT Plus会员值不值得买 ChatGPT Plus 提供每月 $20 的订阅服务,主打 GPT-4 模型访问、高优先级响应队列、文件上传解析(PDF/CSV/TXT 等)及自定义 GPTs 功能。是…...
豆包大模型免费API调用实战:逆向工程原理、集成方案与风险规避
1. 项目概述与核心价值最近在折腾大模型应用开发的朋友,估计都绕不开一个核心问题:API调用成本。无论是做个人项目练手,还是小团队内部测试,动辄按token计费的商业API,账单看着都让人心疼。特别是当你需要频繁调用、进…...
使用TaotokenCLI工具一键配置多开发环境与团队密钥
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用TaotokenCLI工具一键配置多开发环境与团队密钥 基础教程类,本文指导开发者如何通过npx或全局安装TaotokenCLI工具&…...
仅限首批GA客户开放!Gemini Advanced for Workspace隐藏API接口曝光(含/alpha/v2beta1/insights endpoints调用凭证获取路径)
更多请点击: https://intelliparadigm.com 第一章:Gemini Advanced for Workspace隐藏API的GA权限边界与合规性初探 Gemini Advanced for Workspace(GAWS)虽未正式开放全部后端接口文档,但通过网络流量分析与OAuth 2.…...
Claude Code Session 实战指南:AI 结对编程效能提升手册
1. 项目概述:Claude Code Session 的实战效能提升手册如果你和我一样,日常开发中重度依赖 Claude 这类 AI 编程助手,那你肯定遇到过这样的场景:面对一个复杂的重构任务,你向 Claude 描述了半天需求,它给出的…...
TinyML中的数据感知NAS技术解析与应用
1. TinyML与神经网络架构搜索概述在嵌入式设备和物联网终端上部署机器学习模型(TinyML)面临着严峻的资源约束问题。典型的微控制器(MCU)仅有几十KB内存和几百MHz主频,这迫使开发者必须在模型精度与资源消耗之间寻找平衡…...
jdk1.8.0_05 在 SpringBootTest Debug模式下奔溃
之前好好的项目,最近换了之前的电脑,但是在使用SpringBootTest 启动debug模式时,虚拟机就会奔溃,通过修改如果把 junit5 import org.junit.jupiter.api.Test; 修改为 junit4 ,就不奔溃了 import org.junit.Test; 但是这样的话就得在测试类上加上 @RunWith(SpringRunn…...
16Gb容量+1866Mbps速率:NT6CL512T32AM-H1的LPDDR3移动存储参数解析
NT6CL512T32AM-H1:16Gb LPDDR3移动DRAM的技术解析在移动计算、工业嵌入式以及车载信息娱乐等对功耗和性能双重敏感的应用领域,内存子系统的选择直接影响产品的续航能力和数据处理效率。NT6CL512T32AM-H1是南亚科技推出的一款16Gb LPDDR3 SDRAM࿰…...
沈阳哪家GEO优化公司靠谱
2026年,AI搜索与生成式引擎普及,GEO优化成为企业获取精准流量的核心手段。在沈阳,如何筛选具备技术实力与落地能力的服务商,成为企业主关注焦点。以下基于公开信息与行业观察,梳理几家代表性机构供选型参考。辽宁云界数…...
5D动感影院|打造沉浸式体验的新一代互动影院解决方案
随着数字技术与沉浸式体验的不断发展,传统影院已经无法完全满足现代观众对互动性与真实感的需求。在这一背景下,5D动感影院应运而生,凭借多维度感官融合技术,为观众带来前所未有的沉浸式观影体验。作为集视觉、听觉、触觉及环境特…...
