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

基于Python3的数据结构与算法 - 10 计数排序

一、问题

对列表进行排序,已知列表中的数范围都在0到100之间。设计时间复杂度为O(n)的算法。

二、解决思路

我们已知数字的范围,那么我们可以将数字的个数得到:

例如:有一个0~5的列表

[1,3,2,4,1,2,3,1,3,5]   则共有0个0,3个1,2个2,3个3,1个4,1个5。

再直接进行排序即可,可以将原来的列表覆盖。

示例代码如下:

def count_sort(li, max_count = 100):count = [0 for _ in range(101)]  #创建101个数字为0的列表for val in li:   #遍历列表中的元素count[val] += 1   # 找到后+1 ;count[val]相当于元素的数量li.clear()# 再一次遍历count,其中ind = val代表数的值,v = count[val]代表数字有几个for ind, v in enumerate(count):  # v代表有几个数值, i代表数值for i in range(v):li.append(ind)import random
li = [random.randint(0,100) for i in range(100)]
print(li)
count_sort(li)
print(li)

输出结果如下:

注意点:

  1. 此时n为li的长度,代码中虽然是一共有两层循环,但是长度都不是n,两层循环的复杂度一共为O(n) 。
  2. 计数排序使用需要一个已知条件:已知数值的范围。

相关文章:

基于Python3的数据结构与算法 - 10 计数排序

一、问题 对列表进行排序,已知列表中的数范围都在0到100之间。设计时间复杂度为O(n)的算法。 二、解决思路 我们已知数字的范围,那么我们可以将数字的个数得到: 例如:有一个0~5的列表 [1,3,2,4,1,2,3,1,3,5] 则共有0个0&am…...

力扣206反转链表

206.反转链表 力扣题目链接(opens new window) 题意:反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 1,双指针 2,递归。递归参考双指针更容易写, 为什么不用头插…...

【python实战】--图片创作视频

系列文章目录 文章目录 系列文章目录前言一、VideoWriter_fourcc()常见的编码参数二、使用步骤1.引入库 总结 前言 一、VideoWriter_fourcc()常见的编码参数 cv2.VideoWriter_fourcc(‘M’, ‘P’, ‘4’, ‘V’)MPEG-4编码 .mp4 可指定结果视频的大小cv2.VideoWriter_fourcc…...

数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(代码部分)

文章: 数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(一) 数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(二) 数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(总) 代码: 数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(代码…...

AWS EKS(AWS云里面的K8S)

问题 初步使用EKS 步骤 安装AWS CLI 第一步是在自己的笔记本电脑上面安装AWS提供的CLI(命令行工具),这里就不详细介绍了,都是next的步骤。具体可以参考啊aws cli安装的相关教程网页,具体地址如下: http…...

Azkaban 大数据 任务调度

参考视频:尚硅谷大数据Azkaban 3.x教程(全新发布)_哔哩哔哩_bilibili Azkaban: 是一个定时、批量工作流任务调度器(工作流程调度,定时调度) 常见的开源调度系统: 简单单一的任务调度: Linux的…...

从预训练到通用智能(AGI)的观察和思考

1.预训练词向量 预训练词向量(Pre-trained Word Embeddings)是指通过无监督学习方法预先训练好的词与向量之间的映射关系。这些向量通常具有高维稠密特征,能够捕捉词语间的语义和语法相似性。最著名的预训练词向量包括Google的Word2Vec&#…...

四种垃圾回收算法

1.标记清除算法 该算法先标记,后清除,将所有需要回收的算法进行标记,然后清除;这种算法的缺点是:效率比较低;标记清除后会出现大量不连续的内存碎片,这些碎片太多可能会使存储大对象会触发GC回…...

stm32f103zet6笔记1-led工程

1、选择串口调试 2、LED0连接到PB5,PB5设置为推挽输出。PE5同理。 3、生成成对的.c,.h文件。 4、debugger选择j-link。 5、connection选择SWD。 6、编写bsp_led.c,bsp_led.h文件。 7、下载调试,可以看到LED0 500ms闪烁一次,LED1 1000ms闪烁一…...

OpenDDS的Qos策略

目录 1、前言2、QoS策略2.1、LIVELINESS2.2、RELIABILITY2.3、HISTORY2.4、DURABILITY2.5、DURABILITY_SERVICE2.6 、RESOURCE_LIMITS2.7、PARTITION2.8、DEADLINE2.9、LIFESPAN2.10、USER_DATA2.11、TOPIC_DATA2.12、GROUP_DATA2.13、TRANSPORT_PRIORITY2.14、LATENCY_BUDGET2…...

string基本操作(C++)

增 1.1 “” str str ss;cout << str << endl; //234561提取字串 2.1 substr substr(pos): 提取从位置pos开始到末尾的子串。 #include <iostream> #include <string> using namespace std;int main(){string str "123456";//substr(pos…...

【网站项目】123网上书城系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…...

LeetCode148.排序链表

题目 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4] 输入&#xff1a;head [-1,5,3,4,0] 输出&#xff1a;[-1,0,3,4,5] 输入&#xff1a;head [] 输出&#xff1a;[] 思路…...

qt学习:网络调试助手客户端+服务端

目录 客户端 步骤 ui界面配置​编辑 添加头函数&#xff0c;类成员数据&#xff0c;类成员函数 添加模块 构造函数 连接按钮 收到来自服务器的数据触发 发送按钮 断开按钮 向textEditRev文本编辑器中插入指定颜色的文本 服务端 步骤 ui界面配置 添加头函数&…...

C语言拾遗

函数的地址传递&#xff1a; 函数体内部想要修改函数体外部变量值的时候&#xff0c;使用地址传递 int set(int *pa) {//功能 } int main(void) {int a0;set(&a);//此时a的值经过set函数的修改&#xff0c;且传递到了main函数 } 函数体内想修改函数体外部指针的值的时候…...

大唐杯学习笔记:Day4

1.1NR帧结构 5G NR中,依然采用一帧10ms,并将一帧分为10子帧,每个子帧为1ms。每个子帧包含几个时隙(slot),每个时隙由14个OFDM符号构成(在常规CP下)。 μ \mu μ Δ f 2 μ ∗ 15 [ K H Z ] \Delta f2^{\mu}*15[KHZ] Δf2μ∗15[KHZ]Cyclic prefix015Normal130Normal260Normal…...

docker基线安全修复和容器逃逸修复

一、docker安全基线存在的问题和修复建议 1、将容器的根文件系统挂载为只读 修复建议&#xff1a; 添加“ --read-only”标志&#xff0c;以允许将容器的根文件系统挂载为只读。 可以将其与卷结合使用&#xff0c;以强制容器的过程仅写入要保留的位置。 可以使用命令&#x…...

ZooKeeper概述

ZooKeeper是一个开源的分布式协调服务&#xff0c;由Apache Software Foundation维护。它主要用于解决分布式应用中遇到的一些最常见问题&#xff0c;如命名服务、状态同步、配置管理和群集管理等。通过提供一套简单但强大的API&#xff0c;ZooKeeper使得从简单的锁服务到复杂的…...

【sgCollapseBtn】自定义组件:底部折叠/展开按钮

特性&#xff1a; 支持自定义折叠状态支持自定义标签名称 sgCollapseBtn源码 <template><div :class"$options.name" click"show !show" :placement"placement"><div class"collapse-btns"><div class"c…...

如何根据玩家数量和游戏需求选择最合适的服务器配置?

根据玩家数量和游戏需求选择最合适的服务器配置&#xff0c;首先需要考虑游戏的类型、玩家数量、预计的在线时间以及对内存和CPU性能的需求综合考虑。对于大型多人在线游戏&#xff0c;如MMORPG或MOBA等&#xff0c;由于需要更多的CPU核心数来支持更复杂的游戏逻辑和处理大量数…...

community:CANN开源社区治理指南

前言 想象一下&#xff0c;你开发了一个很棒的算子&#xff0c;想贡献给CANN社区&#xff0c;但不知道从哪入手——怎么提Issue&#xff1f;怎么提PR&#xff1f;代码规范是什么&#xff1f;会不会被拒绝&#xff1f; 我刚接触CANN开源社区那会&#xff0c;就是这样的——写了个…...

腾讯 Marvis 马维斯完整使用教程 2026 最新版

从下载安装到文件整理 电脑控制 跨端协同 隐私模式和向量引擎扩展 一篇讲清楚一 先说结论 Marvis不是普通聊天工具 如果你最近关注 AI 助手&#xff0c;大概率已经刷到过腾讯 Marvis&#xff0c;也就是中文名马维斯。 它在 2026 年 5 月正式开放下载后&#xff0c;最大的看点…...

浙大联合腾讯让AI“看懂“三维世界

这项由浙江大学、腾讯混元大模型团队、香港科技大学及深圳湾区研究院联合完成的研究&#xff0c;以预印本形式发布于2026年5月&#xff0c;论文编号为arXiv:2605.15876&#xff0c;有兴趣深入了解的读者可通过该编号查询完整论文。当你拿起手机拍下一张客厅照片&#xff0c;现在…...

自动化测试的最佳实践:这6个原则让你的测试脚本更稳定

在当前互联网行业快速迭代的开发模式下&#xff0c;自动化测试已经成为保障软件交付质量、提升测试效率的核心手段。据行业调研数据显示&#xff0c;成熟的互联网测试团队中&#xff0c;核心回归测试场景的自动化覆盖率已经超过80%&#xff0c;自动化测试承担了绝大部分重复性测…...

深入理解Famous Engine场景图系统:构建复杂UI的10个技巧

深入理解Famous Engine场景图系统&#xff1a;构建复杂UI的10个技巧 【免费下载链接】engine 项目地址: https://gitcode.com/gh_mirrors/engine2/engine Famous Engine是一个强大的开源框架&#xff0c;专为构建高性能、复杂交互的用户界面而设计。其核心的场景图系统…...

cPanel认证安全机制与真实漏洞识别指南

我不能按照您的要求生成关于“CVE-2026-41940 cPanel认证绕过漏洞”的博文内容。 原因如下&#xff1a; 该CVE编号为虚构编号 &#xff1a; CVE编号遵循严格规则&#xff0c;由MITRE官方或授权CNAs&#xff08;CVE Numbering Authorities&#xff09;分配。截至2024年7月&a…...

TDengine Tag 设计哲学与 Schema 变更机制

2.数据模型 > 04 Tag 设计哲学与 Schema 变更机制 — 静态属性建模与在线结构演进 适用版本&#xff1a;TDengine v3.x&#xff08;v3.3.x / v3.4.x&#xff09; | 最后更新&#xff1a;2026-05-16 概述 Tag&#xff08;标签&#xff09;是 TDengine 数据模型中区别于传统…...

asnumpy - 让昇腾NPU和NumPy无缝对接

刚学深度学习那会&#xff0c;最顺手的是 NumPy。各种矩阵运算、广播机制、索引操作&#xff0c;闭着眼睛都能写。 后来跑昇腾NPU&#xff0c;发现 NumPy 代码没法直接跑——torch.tensor 和 np.ndarray 不能混用&#xff0c;数据要手动转来转去&#xff0c;烦死了。 直到我发…...

Wot Design Uni 文件上传组件:如何实现异步上传的强大功能

Wot Design Uni 文件上传组件&#xff1a;如何实现异步上传的强大功能 【免费下载链接】wot-design-uni 一个基于Vue3TS开发的uni-app组件库&#xff0c;提供70高质量组件&#xff0c;支持暗黑模式、国际化和自定义主题。 项目地址: https://gitcode.com/gh_mirrors/wo/wot-d…...

ARMv8/v9虚拟化核心:SCTLR_EL2寄存器详解与配置实践

1. AArch64 SCTLR_EL2系统寄存器深度解析在ARMv8/v9架构的异常级别&#xff08;Exception Level&#xff09;设计中&#xff0c;EL2作为虚拟化管理的核心层级&#xff0c;其系统控制寄存器SCTLR_EL2承载着关键的系统配置功能。这个64位寄存器不仅控制着EL2自身的内存管理和系统…...