备战蓝桥杯Day22 - 计数排序

计数排序问题描述

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

比如列表中有一串数字,2 5 3 1 6 3 2 1 ,需要将他们按照从小到大的次序排列,得到1 1 2 2 3 3 5 6 的结果。那么此时计数排序是比较好的选择。数据量不大且该算法的时间复杂度低。

算法思路:

  1. 统计频次: 扫描待排序数据,统计每个元素出现的次数,建立一个计数数组。计数数组的长度应该涵盖待排序数据的范围。

  2. 累加频次: 对计数数组进行累加操作,得到的结果表示小于等于每个元素的值的元素个数。这一步是为了确保排序的稳定性。

  3. 排序: 创建一个临时数组,遍历待排序数据,根据计数数组中的累加值,将元素放置到临时数组的合适位置。同时,更新计数数组中对应元素的值。

  4. 输出结果: 将临时数组中的排序结果返回,即为最终有序序列。

代码实现:

def count_sort(li,max_count= 100):   count = [0 for _ in range(max_count+1)]   # 生成一个计数器列表for val in li:count[val] += 1   # 遍历列表,得到每个数出现的次数li.clear()  # 将原来列表清空,往里添加排好序的数for ind, val in enumerate(count):  for i in range(val):        li.append(ind)  # 按照计的次数向里添加数字# 测试案例
li = [2, 5, 3, 1, 6, 3, 2, 1]
count_sort(li)
print(li)

运行结果

 这样在处理一些问题时可以直接用这个排序方法,不需要再去构思和设计算法了,在题目运用中还是有很大帮助的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/267959.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 使用curl_cffi 绕过jax3指纹-Cloudflare 5s盾

现在越来越多的网站已经能够通过JA3或者其他指纹信息,来识别你是不是爬虫了。传统的方式比如换UA,加代理是没有任何意义了,所以这个时候我们就需要使用到curl_cffi 了。 1.TLS 指纹是啥? 在绝大多数的网站都已经使用了 HTTPS&am…

一个脚本两步计算材料Raman谱(附数据处理和绘图脚本)

在以往推送中已经介绍了相当多的计算材料Raman的方法,使用的软件主要为Phonopy-Spectroscopy,相关软件还有vasp,phonopy,phono3py等。 Phonopy-Spectroscopy计算材料红外和Raman光谱 Phonopy-Spectroscopy 计算红外和拉曼光谱 也…

python绘制特殊的柱状图

我在使用python绘图时,想要这样绘图:每个组的所有数据放到一起,然后不同组进行比较。 类似这样的图。 然后 我搞了挺长时间,搞了一个类似的图,需要计算每个柱子的位置。 gpt提示词可以这样写: 把所有颜色相同的柱子放…

【MCAL】TC397+EB-tresos之CAN配置实战 - (CAN/CANFD)

本篇文章介绍了在TC397平台使用EB-tresos对CAN驱动模块进行配置的实战过程,不仅介绍了标准CAN的发送与接收,还介绍了CANFD的实现与调试以及扩展帧的使用。M_CAN是德国博世公司开发的IP,因为英飞凌的芯片完整的集成了这个IP,所以整体的配置都比…

4.关联式容器

关联式container STL中一些常见的容器: 序列式容器(Sequence Containers): vector(动态数组): 动态数组,支持随机访问和在尾部快速插入/删除。list(链表)&am…

【接口测试】常见HTTP面试题

目录 HTTP GET 和 POST 的区别 GET 和 POST 方法都是安全和幂等的吗 接口幂等实现方式 说说 post 请求的几种参数格式是什么样的? HTTP特性 HTTP(1.1) 的优点有哪些? HTTP(1.1) 的缺点有哪些&#x…

Nginx高级技巧:实现负载均衡和反向代理

文章目录 Nginx概述Nginx作用正向代理反向代理负载均衡动静分离 Nginx的安装 -->Docker3.1 安装Nginx3.2 Nginx的配置文件3.3 修改docker-compose文件 Nginx源码安装nginx常用命令nginx配置文件配置文件位置配置文件结构详情 Nginx的反向代理【重点】基于Nginx实现反向代理4…

会声会影2024中文官方网站https://wm.makeding.com/iclk/?zoneid=55677

会声会影2024在易用性方面做得非常出色,这也是它受到广大用户喜爱的一个重要原因。 首先,会声会影2024拥有直观的用户界面设计。软件的整体布局清晰明了,各个功能模块划分得十分合理。用户即使是第一次使用,也能够迅速找到所需的…

实战 | 使用YOLOv8图像分割实现路面坑洞检测(步骤 + 代码)

导 读 本文主要介绍使用YOLOv8图像分割实现路面坑洞检测(步骤 代码)。 背 景 如上图所示,现实生活中路面坑洞对车辆和驾驶员安全来说存在巨大隐患,本文将介绍如何使用YoloV8图像分割技术来检测路面坑洞,从而提示驾…

【大数据Hive】hive 多字段分隔符使用详解

目录 一、前言 二、hive默认分隔符规则以及限制 2.1 正常示例:单字节分隔符数据加载示例 2.2 特殊格式的文本数据,分隔符为特殊字符 2.2.1 文本数据的字段中包含了分隔符 三、突破默认限制规则约束 3.1 数据加载不匹配情况 1 3.2 数据加载不匹配…

理解python3中的回调函数

百度百科说:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用&#…

ctf_show笔记篇(web入门---php特性)

目录 php特性 89:直接数组绕过preg_match当遇到数组时会直接报错输出0 90:这里利用了intval的特性 91:这里需要细节一点 92-93:这两题的方法很多可以发散思维 94:还是利用小数绕过例如4476.0 95:这里…

【ArcGIS】统计格网中不同土地利用类型占比

基于ArcGIS统计格网中不同土地利用类型占比 数据准备ArcGIS操作步骤1、创建渔网(Create Fishnet)2、建立唯一标识3、选择格网4、提取不同类别土地利用类型5、各类用地面积计算 参考另:可能出现的问题总结Q1:ArcGIS获取唯一值&…

7.1.1 selenium介绍及安装chromedriver

目录 1. Selenium的用途 2. 安装Selenium库 3. 安装chromedriver 1. 查看谷歌版本号​编辑 2. 找到最新版本及下载 3. 配置环境变量 4. 检测是否配置成功 5. 用python初始化浏览器对象检测: 6. 参考链接 1. Selenium的用途 在前面我们提到:在我…

端智能:面向手机计算环境的端云协同AI技术创新

近年来,随着移动端设备软硬件能力的进步,移动端的算力有了很大提升,同时面向移动端的机器学习框架和模型轻量化技术越来越成熟,端上的AI能力逐渐进入大众视野,端智能在电商领域也开始逐步走向规模化应用。通过持续探索…

Leetcoder Day36| 动态规划part03

343. 整数拆分 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2输出: 1解释: 2 1 1, 1 1 1。 示例 2: 输入: 10输出: 36解释: 10 3 3 4, 3 3 4 36。说明: 你可以假设 …

Day04:APP架构小程序H5+Vue语言Web封装原生开发Flutter

目录 常见APP开发架构 APP-开发架构-原生态-IDEA APP-开发架构-Web封装-平台 APP-开发架构-H5&Vue-HBuilderX WX小程序-开发架构-Web封装-平台 WX小程序-开发架构-H5&Vue-HBuilderX 思维导图 章节知识点: 应用架构:Web/APP/云应用/三方服…

ROS开发基础-Linux基础第四部(开发板设置本地IP)

一 、网线连接设备 使用网线连接jetson NX与机械臂,如下图所示: 二、 修改上位机IPV4 IP ①测试是否可连接。网线连接机械臂之后,在桌面打开终端输入命令“ping 192.168.1.18”,如不可正常通信,可按照下述步骤进行设置。 ②在U…

TypeScript08:在TS中使用模块化

前言:tsconfig.json中的配置 一、前端领域中的模块化标准 前端领域中的模块化标准有: ES6、commonjs、amd、umd、system、esnext 二、 TS中如何书写模块化语句 TS 中,导入和导出模块,统一使用 ES6 的模块化标准。 myModule.ts &a…

如何使用ArcGIS Pro创建最低成本路径

虽然两点之间直线最短,但是在实际运用中,还需要考虑地形、植被和土地利用类型等多种因素,需要加权计算最低成本路径,这里为大家介绍一下计算方法,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载…