冒泡排序是一种基本的排序算法,它通过比较相邻元素并交换位置来将较大的元素逐渐“冒泡”到数组的末尾。下面是按降序排列的冒泡排序的代码示例:
def bubble_sort(arr):
n = len(arr)
for i in range(n-1):
for j in range(n-i-1):
if arr[j] < arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
代码解析:
bubble_sort
函数接受一个数组 arr
作为参数,并返回排序后的数组。n = len(arr)
获取数组的长度。for i in range(n-1):
控制比较的轮数,共需要进行 n-1
轮比较,因为每一轮比较都会将最大的元素“冒泡”到末尾。for j in range(n-i-1):
控制每一轮比较的次数,根据外层循环的轮数 i
来确定内层循环的次数,每一轮比较都会将当前轮次中最大的元素放到正确的位置上。if arr[j] < arr[j+1]:
判断相邻元素的大小关系,如果当前元素小于后一个元素,则交换它们的位置,实现降序排列。arr[j], arr[j+1] = arr[j+1], arr[j]
交换元素的位置。arr
。示例调用:
arr = [5, 3, 8, 4, 2]
sorted_arr = bubble_sort(arr)
print(sorted_arr)
输出结果:
[8, 5, 4, 3, 2]
以上代码示例演示了按降序排列的冒泡排序。当然,冒泡排序不是最优的排序算法,它的时间复杂度为 O(n^2),在处理大规模数据时效率较低。