Python程序:根据其二进制表示中的1的计数对数字进行排序2025年1月5日 | 阅读 5 分钟 要在 Python 中根据数字二进制表示中 1 的数量对其进行排序,首先将每个数字转换为其二进制形式。其次,计算二进制表示中的 1 的数量。最后,根据这个数量对数字进行排序。为此,我们将利用按位运算符和 Python 自带的排序实用程序。
以下是实现此目的的 Python 代码 代码 输出 Original numbers: [7, 4, 11, 13, 8] Sorted numbers based on number of 1s in their binary representation: [4, 8, 7, 11, 13] 让我们分解一下代码
让我们更详细地说明排序过程是如何工作的。 在排序之前,当我们使用 sorted(numbers, key=count_ones) 时,Python 会在内部对列表中的每个数字应用 count_ones 函数。Python 现在可以根据 count_ones 的结果对整数进行排序。 让我们逐步使用示例列表 [7, 4, 11, 13, 8] 来概述排序过程 1. 原始列表2. 应用 count_ones 函数3. 带有 1 计数的中间列表4. 按 1 的计数排序按 1 的计数排序(并保持相等项的原始顺序) 5. 排序后的列表 效率此计算的时间复杂度取决于两个变量 1. 计算二进制表示中的 1 的数量(count_ones 函数)
2. 排序
边缘情况1. 处理负数
2. 处理零
3. 处理大数
结论总之,一个 Python 算法,它可以有效地将每个数字转换为其二进制形式,计算 1 的数量,然后根据该计数对数字进行排序,可以用于根据其二进制表示中的 1 的数量对数字进行排序。count_ones 函数(用于检查二进制格式中的 1)的时间复杂度为 O(log n),其中 n 是数字的值。利用 Python 内置的排序功能,排序方法的总体时间复杂度通常为 O(n log n)。此方法通过处理各种边缘情况(例如负数、零、大数和重复项)来确保准确的排序结果。该算法提供了一种可靠且高效的方法来根据二进制 1 的数量排列整数,这使其在需要此类排序的各种情况下都很有用。 下一个主题Python 中的伪终端实用程序 |
? 引言 数据可视化中的基本操作之一是使用 Python 在 Matplotlib 中绘制单个点。借助灵活的 Matplotlib 模块,可以使用 Python 创建静态、交互式或动画的可视化。首先,您通常会加载 matplotlib.pyplot,它提供了...
阅读 3 分钟
Python 字典简介 字典是 Python 中的一种数据结构,它允许您以键值对格式存储和检索信息。在字典中,键是促进数据访问和组织的关键组件。键的概述...
阅读9分钟
Python 中的嵌套循环 引言 循环是编程中的一个基本概念,它允许我们重复执行一个代码块。在 Python 中,有各种类型的循环,而嵌套循环是一个强大的概念。当您将一个循环放在另一个循环内部时,就会出现嵌套循环....
7 分钟阅读
Python 文档字符串指的是 Python 文档字符串,它基本上是字符串文字。它们提供了一种将文档与 Python 函数、模块、类和方法结合起来的合适方式。文档字符串可能会随程序一起执行,但它不会被忽略...
阅读 4 分钟
? 本文将探讨从给定字符串中获取 Python 日期的各种技术。在探索各种潜在解决方案之前,将彻底解释问题。从字符串中提取日期问题:我们有一个显示日期的字符串,格式为“YYYY-MM-DD”。要……
5 分钟阅读
在本教程中,我们将学习名人问题。我们将使用各种方法解决这个问题。这是一个重要的编程问题,可能在技术面试中出现。本教程将帮助您学习如何有效地解决它。让我们来理解一下……
阅读9分钟
什么是 OpenCV?开源计算机视觉旨在成为领先的免费软件,可用于实时计算机视觉。它包含应用程序编程接口和计算方法,用于分析图像、视频和网络摄像头馈送。OpenCV 应用于机器人、机器学习、增强现实等领域...
5 分钟阅读
? 介绍:在本教程中,我们将学习如何在不使用 re.compile 方法的情况下编写不区分大小写的 Python 正则表达式或 regex。正则表达式或 regex 是在字符串中进行模式匹配和搜索的有用工具。默认情况下,正则表达式模式是区分大小写的;也就是说,...
阅读 4 分钟
?简介:确定列表是否为空在 Python 中对于许多编程任务至关重要。可以使用评估列表布尔值的有效 if 语句来完成此操作。如果列表为空,则返回 False,否则返回 True。...
7 分钟阅读
简介 Python 是一种流行的语言,用于执行各种任务;它支持多种数据类型,这些数据类型根据其特定用途进行了调整。列表、序列和切片是这些结构中操作和维护数据的基本部分。虽然存在一个...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India