Python 冒泡排序实现 - 详细解析和代码示例
以下是一个 Python 实现的冒泡排序算法:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# 在每个循环中,最大的元素都会被移动到末尾
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
这段代码使用两个 for 循环来实现冒泡排序。外部循环控制比较次数,内部循环则负责比较相邻的元素并交换它们的位置。由于每个循环都会将最大的元素移动到末尾,所以外部循环只需要执行 n 次,n 为数组长度。
工作原理:
- 算法首先比较数组中相邻的两个元素。
- 如果前面的元素比后面的元素大,则交换它们的位置。
- 继续比较相邻元素,直到到达数组末尾。
- 重复步骤 1-3,直到整个数组排序完成。
时间复杂度:
冒泡排序的时间复杂度为 O(n^2),其中 n 为数组长度。这意味着随着数组长度的增加,排序时间会呈平方级增长。
优缺点:
优点:
- 容易理解和实现。
缺点:
- 时间复杂度高,不适用于大型数组。
- 效率较低,特别是对于已经排序或接近排序的数组。
其他排序算法:
除了冒泡排序,还有其他许多排序算法,例如插入排序、选择排序、归并排序、快速排序等。每种算法都有其优缺点,适合不同的应用场景。
原文地址: http://www.cveoy.top/t/topic/mBia 著作权归作者所有。请勿转载和采集!