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

算法笔记(三)—— 桶排序及排序总结

逻辑上是一棵完全二叉树(依次遍满或者全满)。

数组可以转为完全二叉树,完全二叉树某结点左孩子(2*i+1),右孩子(i*2+2),父结点((i-1/)2),根节点的父还是自己。

如何将数组转化为堆(大根堆):

1. 初始heapsize = 0,堆的尺寸

2. 给我一个5,我放在0位置,heapsize++

3. 再给我一个3,放在heapsize位置,heapsize++

4.给我一个6,同样,形成[5 3 6],6需要跟其父结点比较,如果大于父则交换

5. 也就是说,当加入一个新数时,不断和自己的父结点比较,若大于父则交换,直到小于等于父

时间复杂度:O(logN)

如果拿掉了大根堆堆顶,怎么重新构造:

1. 先将数组最后一个数字放于0处,heapsize--

2. 从头结点开始,在左孩子和右孩子的最大值交换

3. 直到该结点成为叶子结点或者大于其左孩子和右孩子

时间复杂度:O(logN)

改变数组某位置的数据,怎么重新构造:

1. 判断变大了还是变小了

2. 若变小了,往下移

3. 若变大了,往上移

4. 不判断就两个全做即可

时间复杂度:O(logN)

堆排序

依次放入数组中的数,构造大根堆(小根堆),数组第一个元素与最后元素交换,heapsize--,重新构造,依次下次,直到堆的大小减为0,则实现排序。

时间复杂度:O(NlogN)

空间复杂度:O(1)

如何不通过添数的方式,依次heapify即可构造堆。时间复杂度O(N)

QUESTION

1. 准备一个小根堆,遍历数组,遍历前k+1个数构造

2. 小根堆的堆顶一定要在0位置,这时候弹出堆顶,加入下一个元素

3. 依次下去即可

桶排序(不基于比较的排序)

数据范围小的时候可以使用计数排序,一个数组统计数字频次,依次输出即可。

基数排序(可以通过词频统计完成入桶出桶操作)

1. 先看最大数字有几位,然后通过前补0,将所有数字变为该位

2. 准备10个(按进制来)的队列,根据数字最低位数放入对应队列

3. 从左到右取出队列数字

4. 按十位数放如对应序列,再从左到右取出

5. 下次下去,直到超过最大位数,排序完成

相关文章:

算法笔记(三)—— 桶排序及排序总结

堆 逻辑上是一棵完全二叉树(依次遍满或者全满)。 数组可以转为完全二叉树,完全二叉树某结点左孩子(2*i1),右孩子(i*22),父结点((i-1/)2),根节点的父还是自己。 如何将数组转化为堆(大根堆&…...

Linux入门篇(一)

Linux前言Linux初探Linux内核GNU实用工具shellLinux发行版bash shell 基础Linux文件系统Linux文件操作命令前言 在阅读诸如docker之类的书的时候,经常碰到Linux的知识。同时,大部分的盲区也是在Linux方面。因此就想稍微了解一下这个广为人使用的操作系统…...

HTTPSHandler SSL Error

我在服务器ubuntu中,尝试使用pip3,但是出现下面的报错 ImportError: cannot import name HTTPSHandler 通过查询资料,发现报错的原因是,该pip3.5中没有安装好openssl. 我尝试在python3.5中使用import ssl, 确实是会显示下面的报错…...

基于Android的高校食堂餐厅配送系统

需求信息: 商家客户端: 1:登录注册:用户可以通过自己的信息进行账号的注册 2:发布菜单:发布自己经营的美食信息 3:用户订单:查看用户的购买订单 4:订单配送:对…...

Java设计模式-02工厂模式

为什么需要工厂模式,其作用什么?如何实现,代码演示解析优缺点。Q1:为什么需要工厂模式?工厂模式的作用(优点)是什么? 解耦。把对象的创建和使用的过程分开。就是Class A 想调用 Class B ,那么A只是调用B的…...

AXI-Lite 学习笔记

AXI-Lite 学习笔记 参考 FPGA:AXI_Lite总线基础2-1]、第二节 AXI总线介绍、ZYNQ PL与PS交互专题_哔哩哔哩_bilibili AXI-Lite总线系列1 - 基础知识_哔哩哔哩_bilibili AXI4 介绍 AXI4 是ARM公司提出的一种片内总线,描述了主从设备之间的数据传输方式。主…...

77页智慧城市顶层设计方案

【版权声明】本资料来源网络,知识分享,仅供个人学习,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间删除!完整资料领取见文末,部分资料内容:篇幅有限,无法完全展…...

JavaWeb--MavenMybatis基础

JavaWeb--Maven&Mybatis基础1 Maven1.1 Maven简介1.1.1 Maven模型1.1.2 仓库1.2 Maven基本使用1.2.1 Maven 常用命令1.2.2 Maven 生命周期1.3 IDEA使用Maven1.3.1 IDEA配置Maven环境1.3.2 Maven 坐标详解1.3.3 IDEA 创建 Maven项目1.3.4 IDEA 导入 Maven项目1.4 依赖管理1.…...

博客系统--测试用例编写

目录一,整体概览1.1,登录页面测试用例1.2,注册页面测试用例1.3,发布博客功能测试1.4,删除博客功能测试二,具体设计2.1,注册页面测试--等价类法2.2,删除博客功能测试--判定表法一&…...

SpringCloud Alibaba

文章目录🚏 第十七章 SpringCloud Alibaba入门简介🚬 一、为什么使用Alibaba🚭 1、spring netflix进入维护模式🚭 Spring cloud alibaba🚬 二、如何使用?🚬 三、版本对应🚏 第十八章…...

地平线slam算法岗位 面试分享

本专栏分享 计算机小伙伴秋招春招找工作的面试经验和面试的详情知识点 专栏首页:秋招算法类面经分享 主要分享计算机算法类在面试互联网公司时候一些真实的经验 小伙伴自我介绍: 写在前面,南京某炮专,研二上阶段,简历写了两个竞赛和一个项目,一个机器人相关的二等奖,一个…...

32、基于51单片机红外智能垃圾桶系统设计

摘要 随着现代化进程的日益推进,科技越来越发达,人们的生活水平也提高了,城市化程度越来越高,与此同时也带了许多问题,生活垃圾越来越多垃圾设施却不够完善。无论是在公共场合还是家庭厨房的垃圾大都是没有盖或者有盖…...

PIL.Image与cv2之间的常用API汇总

简单介绍 主要是因为经常用到这两个,经常弄混淆,所以,总结一番。持续更新。 from PIL import Image import cv2 as cv import numpy as np import matplotlib.pyplot as plt1、读取文件与写入文件 1.1 Image.open() img_pil Image.open…...

【csdn首发】全网爆火的从零到一落地接口自动化测试

前段时间写了一系列自动化测试相关的文章,当然更多的是方法和解决问题的思路角度去阐述我的一些观点。结合我自己实践自动化测试的一些经验以及个人理解,这篇文章来聊聊新手如何从零到一落地实践接口自动化测试。 为什么要做接口测试 测试理念的演变 早…...

基于应力的拓扑优化的高效3D灵敏度分析代码(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

PMP®十万个为什么(二)

11.我的职位与项目管理并没有多大联系,PMP对我应该就没有什么价值了吧? 其实不然,首先,我们知道项目管理是一个系统性的工作,在一个企业内部如果要把项目管理的工作做好,除了项目团队的工作与管理水平不断提…...

【Linux】生产者消费者模型

🎇Linux: 博客主页:一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 看似不起波澜的日复一日,一定会在某一天让你看见坚持…...

2023/2/13 蓝桥备战acwing刷题(set的使用、简单推个不等式+差分、快速幂、01背包模板回顾、类似01背包的题)

4454未初始化警告 set计数 #include<iostream> #include<set> using namespace std;int main(){int n,m;cin>>n>>m;set<int> s;int res 0;s.insert(0);while(m--){int l,r;cin>>l>>r;if(s.count(r)0){res;}s.insert(l);}cout<…...

【情人节专属】AI一键预测你和Ta的CP值

如何预测你和心仪的Ta有没有夫妻相&#xff1f;基于华为云ModelArts开发的【一键预测你和Ta的CP值】Demo帮你预测CP指数。该模型利用ssim算法综合计算五官特征相似程度&#xff0c;从而得出CP值。//夫妻相的原理在当今心理学、生物学仍有很大争议&#xff0c;夫妻相指数高并不意…...

一文浅谈sql中的 in与not in,exists与not exists的区别以及性能分析

文章目录1. 文章引言2. 查询对比2.1 in和exists2.2 not in 和not exists2.3 in 与 的区别3. 性能分析3.1 in和exists3.2 NOT IN 与NOT EXISTS4. 重要总结1. 文章引言 我们在工作的过程中&#xff0c;经常使用in&#xff0c;not in&#xff0c;exists&#xff0c;not exists来…...

2023前端面试题——JS篇

1.判断 js 类型的方式 1. typeof 可以判断出’string’,‘number’,‘boolean’,‘undefined’,‘symbol’ 但判断 typeof(null) 时值为 ‘object’; 判断数组和对象时值均为 ‘object’ 2. instanceof 原理是 构造函数的 prototype 属性是否出现在对象的原型链中的任何位置 …...

微服务中API网关的作用是什么?

目录 什么是API网关&#xff1f; 为什么要用API网关&#xff1f; API网关架构 API网关是如何实现这些功能的&#xff1f; 协议转换 链式处理 异步请求 什么是API网关&#xff1f; Api网关是微服务的重要组成部分&#xff0c;封装了系统内部的复杂结构&#xff0c;客户端…...

python爬虫--xpath模块简介

一、前言 前两篇博客讲解了爬虫解析网页数据的两种常用方法&#xff0c;re正则表达解析和beautifulsoup标签解析&#xff0c;所以今天的博客将围绕另外一种数据解析方法&#xff0c;它就是xpath模块解析&#xff0c;话不多说&#xff0c;进入内容&#xff1a; 一、简介 XPat…...

【论文阅读】基于意图的网络(Intent-Based Networking,IBN)研究综述

IBN研究综述一、IBN体系结构1.1 体系结构&#xff1a;1.2 闭环流程&#xff1a;1.3 IBN的自动化程度(逐步向前演进)&#xff1a;二、IBN 的实现方式2.1 意图获取&#xff1a;2.1.1 YANG、NEMO2.1.2 Frenetic、NetKAT、LAI2.2 意图转译&#xff1a;2.2.1 iNDIRA系统2.2.2 基于模…...

【云原生kubernetes】k8s service使用详解

一、什么是服务service&#xff1f; 在k8s里面&#xff0c;每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失&#xff0c;重启pod的ip地址会发生变化&#xff0c;此时客户如果访问原先的ip地址则会报错 &#xff1b; Service (服务)就是用来解决这个问题的…...

Python 数据可视化的 3 大步骤,你知道吗?

Python实现可视化的三个步骤&#xff1a; 确定问题&#xff0c;选择图形转换数据&#xff0c;应用函数参数设置&#xff0c;一目了然 1、首先&#xff0c;要知道我们用哪些库来画图? matplotlib Python中最基本的作图库就是matplotlib&#xff0c;是一个最基础的Python可视…...

CSS基础:盒子模型和浮动

盒子模型 所有HTML元素可以看作盒子&#xff0c;在CSS中&#xff0c;"box model"这一术语是用来设计和布局时使用 CSS盒模型本质上是一个盒子&#xff0c;封装HTML元素。 它包括&#xff1a;外边距&#xff08;margin&#xff09;&#xff0c;边框&#xff08;bord…...

OpenHarmony使用Socket实现一个TCP服务端详解

点击获取BearPi-HM_Nano源码 ,以D4_iot_tcp_server为例: 点击查看:上一篇关于socket udp实现的解析 查看 TCPServerTask 方法实现: static void TCPServerTask(void) {//连接WifiWifiConnect("TP-LINK_65A8",...

kafka监控工具安装和使用

1. KafkaOffsetMonitor 该监控是基于一个jar包的形式运行&#xff0c;部署较为方便。只有监控功能&#xff0c;使用起来也较为安全(1)消费者组列表 (2)查看topic的历史消费信息. (3)每个topic的所有parition列表(topic,pid,offset,logSize,lag,owner) (4)对consumer消费情况进…...

近期工作感悟

从应届生变为社畜已经半年了&#xff0c;在这里吐槽一下自己的所想给自己看。 首先是心理层面上的&#xff0c;初期大大增加的压力。 我觉得应届生能够来到大厂的&#xff0c;基本都是在大学有去规划学习&#xff0c;对自己技能比较认可的。比如我在学校自学游戏开发&#xff…...

世界500强企业名单/无锡百度快速优化排名

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼代码如下import java.sql.*;import java.util.Vector;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import java.sql.*;//从数据库中取出public class Test2 extends JFrame{//rowData用来…...

做网站网页需要什么软件/开鲁网站seo站长工具

原文地址为&#xff1a; ASP.NET MVC5 网站开发实践 - 概述前段时间一直在用MVC4写个网站开发的demo&#xff0c;由于刚开始学所有的代码都写在一个项目中&#xff0c;越写越混乱&#xff0c;到后来有些代码自己都理不清了。1月26日晚上在群里跟怒放 他们讨论这个问题&#xff…...

上海网站制作公司/推广团队

2019独角兽企业重金招聘Python工程师标准>>> 开关 : .toggle input[type"checkbox"] 开关通常用来设置两种状态 - 开启和关闭&#xff1a; 正如上图中所见&#xff0c;开关的可视部件包括两部分&#xff1a;滑轨&#xff08;.track&#xff09;和手柄&…...

陇西学做网站/搜狗seo培训

由于昨天在一个大公司面试&#xff0c;被c#中的一个interface给难住了&#xff0c;所以回来以后我就找了这些资料看了一下&#xff0c;有了一点感觉。记录下来&#xff0c;方便以后使用。 c# interface定义&#xff1a;就是以前使用的类似于 API 的东西&#xff0c;别人告诉你一…...

网站平台怎么做的/seo综合查询工具可以查看哪些数据

随着IPv4地址即将用尽&#xff0c;全球已经加速进入IPv6时代&#xff0c;目前电脑中也可以查看到IPv6地址信息&#xff0c;不过很多朋友对于IPv6是什么不太了解&#xff0c;下面通过ipv6地址知识百科以及怎么查看电脑IPv6地址&#xff0c;让大家深入了解一下。ipv6是什么?专业…...

网站开发需要那些人才/毕业设计网站

不管是我们在安装软件还是监测软件的使用性能&#xff0c;我们都要随时掌握系统磁盘的使用情况。 使用df命令 df df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间&#xff0c;目前还剩下多少空间等信息。 [rootinsta…...