冒泡排序算法:原理、实现和时间复杂度
冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较相邻的两个元素,并交换它们的位置,直到没有任何一对元素需要交换为止。
具体实现如下:
- 比较相邻的两个元素,如果前一个比后一个大,则交换它们的位置。
- 对每一对相邻的元素进行比较和交换,直到列表结尾。
- 重复以上步骤,直到列表没有任何一对元素需要交换。
下面是一个 Python 实现:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
其中,arr 是待排序的列表,n 是列表长度,i 和 j 是循环变量。在第一层循环中,我们遍历列表中的每一个元素,从第一个元素开始,到倒数第二个元素。在第二层循环中,我们比较相邻的两个元素,并交换它们的位置。最后返回排好序的列表。
冒泡排序的时间复杂度为 $O(n^2)$,空间复杂度为 $O(1)$。 由于其时间复杂度较高,在实际应用中较少使用。
原文地址: https://www.cveoy.top/t/topic/ngj6 著作权归作者所有。请勿转载和采集!