冒泡排序算法详解:原理、代码实现及效率分析
冒泡排序是一种简单的排序算法,它的基本思想是重复地走访过要排序的数列,每次比较相邻两个元素的大小,如果发现它们的顺序错误就交换它们的位置,直到没有任何一对数字需要比较为止。它的名称由来是因为越小的元素会经由交换慢慢'浮'到数列的顶端,而越大的元素会不断地沉到底部。
以下是冒泡排序的示例代码:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# 每轮循环确定一个最大值,所以只需要比较前 n-i-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
时间复杂度为 $O(n^2)$,空间复杂度为 $O(1)$。虽然冒泡排序的时间复杂度较高,但是它的代码实现简单易懂,且在数据规模较小时表现良好。
原文地址: https://www.cveoy.top/t/topic/mpV1 著作权归作者所有。请勿转载和采集!