2.9 KiB
2.9 KiB
Python 中的砖块排序算法[易于实现]
原文:https://www.askpython.com/python/examples/brick-sort-algorithm
在本教程中,我们将学习如何实现砖块排序算法,以便对数组中的元素进行排序。这在编码界是未知的,但学习一种新的排序技术没有坏处。
在用 python 编程语言实现 brick sort 之前,让我们先了解一下什么是 brick sort。
也读作:在 Python 中插入排序
砖块排序算法简介
砖块排序,又称奇偶排序,是泡泡排序的修改版本。排序算法分为两个阶段,即奇数阶段和偶数阶段。通过确保在每次迭代中执行偶数和奇数阶段,控制将一直运行,直到对数组进行排序。
现在你可能会问这些奇数和偶数阶段是什么意思?当控件执行奇数阶段时,我们将只对奇数索引处的元素进行排序。在事件阶段的执行过程中,以类似的模式,控件将只对偶数索引处的元素进行排序。
砖块排序算法实现
为了实现砖块排序,我们将遵循一些步骤,下面也将提到。
- 声明砖块排序函数来执行排序,并取一个变量到在奇数和偶数阶段之间切换。
- 创建一个变量 isSort ,初始值为 0。此变量的目的是跟踪当前阶段。
- 运行 while 循环进行迭代,直到 isSort 等于 1。
- 创建一个内部 for 循环来对奇数条目进行排序。
- 类似地,创建另一个内部 for 循环来对偶数条目进行排序。
- 一旦排序完成,我们返回结果。
在 Python 中实现砖块排序
让我们直接进入 Python 中的块排序算法的实现,并确保我们可以获得预期的输出。
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
结论
我希望今天你学到了一种新的排序算法。虽然要求不多,但是口袋里有一些额外的知识总是好的!
感谢您的阅读!快乐学习!😇