在本教程中,我们将学习如何实现砖排序算法以对数组中的元素进行排序。这在编码世界中是未知的,但学习一种新的排序技术没有什么坏处。
在用 python 编程语言实现砖排序之前,让我们首先了解什么是砖排序。
另请阅读:Python 中的插入排序
砖排序算法简介
砖排序,也称为奇偶排序,是冒泡排序的修改版本。排序算法分为两个阶段,即奇数阶段和偶数阶段。通过确保在每次迭代中执行偶数和奇数阶段,控制运行直到对数组进行排序。
现在你可能会问这些奇数和偶数阶段是什么意思?当控件执行奇数阶段时,我们将仅对奇数索引处存在的元素进行排序。在事件阶段执行期间的类似模式中,控件将仅对偶数索引处的元素进行排序。
砖排序算法实现
为了实现砖排序,我们将遵循许多步骤,下面也会提到。
- 声明brick sort 函数来执行排序,并使用一个变量在奇数阶段和偶数阶段之间切换。
- 创建一个变量isSort,初始值为 0。该变量的目的是跟踪当前阶段。
- 运行 while 循环进行迭代,直到 isSort 等于 1。
- 创建一个内部 for 循环来对奇数条目进行排序。
- 同样创建另一个内部 for 循环来对偶数条目进行排序。
- 排序完成后,我们返回结果。
在 Python 中实现砖块排序
让我们直接开始在 Python 中实现砖块排序算法,并确保我们可以获得预期的输出。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 号
18
19
20
21
22
23
|
def brickSort(array, n): isSort = 0 while isSort = = 0 : isSort = 1 for i in range ( 1 , n - 1 , 2 ): if array[i] > array[i + 1 ]: array[i], array[i + 1 ] = array[i + 1 ], array[i] isSort = 0 for i in range ( 0 , n - 1 , 2 ): if array[i] > array[i + 1 ]: array[i], array[i + 1 ] = array[i + 1 ], array[i] isSort = 0 return array = [ 31 , 76 , 18 , 2 , 90 , - 6 , 0 , 45 , - 3 ] n = len (array) print ( "Array input by user is: " , end = "") for i in range ( 0 , n): print (array[i], end = " " ) brickSort(array, n); print ( "\nArray after brick sorting is: " , end = "") for i in range ( 0 , n): print (array[i], end = " " ) |
上述代码如下所示。可以看到数组排序成功。
Array input by user is : 31 76 18 2 90 - 6 0 45 - 3 Array after brick sorting is : - 6 - 3 0 2 18 31 45 76 90 |
结论
我希望今天您了解了一种新的排序算法。虽然要求并不多,但是口袋里有一些额外的知识总是更好!
感谢您的阅读!快乐学习!😇