在本教程中,我们将学习如何实现砖块排序算法,以便对数组中的元素进行排序。这在编码界是不为人知的,但学习一种新的排序技术是无妨的。
在用Python编程语言实现砖块排序之前,让我们首先了解一下什么是砖块排序。
砖块排序算法简介
砖块排序,也被称为奇偶排序,它是Bubblesort的一个修改版本。该排序算法分为两个阶段,即奇数和偶数阶段。通过确保每一次迭代都执行偶数和奇数阶段,控制运行直到数组被排序。
现在你可能会问这些奇数和偶数阶段意味着什么?当控件执行奇数阶段时,我们将只对存在于奇数索引的元素进行排序。在执行事件阶段时,也是类似的模式,控件将只对偶数索引处的元素进行排序。
砖块排序算法的实现
为了实现砖块排序,我们将遵循一些步骤,下面将提到这些步骤。
- 声明砖块排序函数,以执行排序,同时使用一个变量在奇数和偶数阶段之间切换。
- 创建一个初始值为0的变量isSort ,这个变量的目的是跟踪当前阶段。
- 运行一个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
总结
我希望你今天了解了一种新的排序算法。虽然它的要求并不高,但是,在你的口袋里有一些额外的知识总是更好的!
谢谢你的阅读!学习愉快!😇