编写 Python 程序对奇偶排序或奇偶转换排序进行排序2025 年 1 月 8 日 | 3 分钟阅读 在本教程中,我们将学习移位排序(transposition sort),也称为砖排序(brick sort)或奇偶排序(parity sort)。它是一种相对简单的排序算法,最初是为具有本地互连的并行处理器开发的。该算法类似于冒泡排序,并具有许多相似的特征。它旨在比较列表中所有奇数/偶数索引的相邻元素对,如果一对元素的顺序错误,则交换这些元素。然后对偶数/奇数索引重复此步骤。然后,它在奇数/偶数和偶数/奇数步骤之间交替进行,直到列表被排序。 让我们通过一个例子来更好地理解它。 假设我们有一个整数列表。我们需要将数字安排为偶数在前,奇数在后。因此,我们需要先放置偶数,然后再放置奇数。 如果给定的列表是 a [3, 7, 8, 2, 1, 9, 4, 6],结果将是 [2, 4, 6, 8, 3, 7, 9]。我们将使用以下步骤来解决此问题 - 设置 i := 0 且 j := 0 当 j < 列表长度时 o 如果 list[j] 是偶数,则交换 list[i] 和 list[j],并将 i 增加 1 o 将 j 增加 1 返回列表 让我们将上述解决方案实现为 Python 代码 - 示例 - 输出 - Original list: [4, 3, 5, 1, 2] Sorted order is: [1, 2, 3, 4, 5] Original list: [15, 29, 100, 23, -14, 45, 178, 192, 246, -118, 0, 7] Sorted order is: [-118, -14, 0, 7, 15, 23, 29, 45, 100, 178, 192, 246] 解释 - 在上面的代码中,我们创建了一个名为 parity_sort 的函数,它接受一个列表作为参数。在函数中,我们初始化了列表的长度,并使用了嵌套的 for 循环。外层 for 循环将运行到列表的长度,内层循环将从模 2 开始到列表末尾,并跳过列表中的两个元素。如果下一个元素小于前一个元素,则交换这两个元素。一旦列表排序完成,函数将返回排序后的列表。 我们也可以使用 while 循环来解决此问题。让我们理解以下示例。 示例 - 输出 - Original list: [4, 3, 5, 1, 2] Sorted order is: [4, 2, 5, 1, 3] Original list: [15, 29, 100, 23, -14, 45, 178, 192, 246, -118, 0, 7] Sorted order is: [100, -14, 178, 192, 246, -118, 0, 23, 29, 45, 15, 7] 结论在本教程中,我们实现了奇偶排序或偶奇排序。我们可以使用 for 循环或 while 循环来解决此问题。这个问题可能会在技术面试中出现。 |
此模块提供了一个用于压缩和解压缩文件的简单接口,类似于GNU工具gzip和gunzip。gzip模块提供了GzipFile类,以及open()、compress()和decompress()便捷函数。GzipFile类读取和写入gzip格式...
阅读 13 分钟
随机森林是一种流行且高效的集成机器学习方法。对于结构化(表格)数据集,例如电子表格或关系数据库表中的数据集,此算法通常用于通过分类和回归进行预测建模。时间序列数据必须首先转换...
阅读 8 分钟
简介:本教程讨论了如何使用 Python 将 MultiDict 转换为嵌套字典。MultiDict 是一个类似字典的对象,它包含相同键的多个值,使其成为处理表单和查询字符串的合适数据结构。它是 Python 的子类...
阅读 4 分钟
什么是多态性?多态性是指具有多种形式。多态性是一个编程术语,指的是对多种类型使用相同的函数名称,但具有不同的签名。内置多态函数示例:# 用于演示内置多态函数的 Python 程序 # len() 函数是...
阅读 4 分钟
什么是位函数?应用于每个独立位而不是完整数字的函数称为位函数。我们可以将每个数字表示为二进制位,即 0 和 1。如果我们以二进制格式表示任何数字,我们可以应用...
阅读 3 分钟
我们每天都会遇到一系列任务。其中一些可能很有趣,有些可能很繁琐。然而,完成这些任务的重要性是毋庸置疑的,特别是当它们是常规任务时。有时可能有很多...
阅读27分钟
简介 排序是计算机科学中的一项核心操作,其应用范围从信息恢复到增强算法执行。在不同的排序算法中,快速排序因其速度和效率而脱颖而出。然而,快速排序的效率很大程度上取决于枢轴元素的选择。在本文中,我们...
阅读 4 分钟
在查看 re 模块的 Split、Sub、Subn 函数之前,让我们先了解一些 Python 提供的 re 模块。Regex 或正则表达式 (RE) 是一个特定的文本字符串,对于定义搜索模式非常有用...
阅读 24 分钟
在本教程中,我们将学习如何编写 Python 程序来查找 Python 中最长的子字符串。在此问题中,我们给定一个字符串,我们需要在该第一个字符串中找到最长的子字符串。让我们理解以下示例。示例 - 1:输入:S =...
阅读 8 分钟
Aho-Corasick 是一种字典匹配算法。该算法用于搜索关键字集中存在的单词。该算法对于查找单词及其位置快速高效。Aho-Corasick 算法构建现有系统并采用 TRIE 概念。一棵树...
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India