冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。
冒泡排序算法的运作如下:
比较相邻的元素。如果第一个比第二个大,就交换它们两个;
对于所有的元素重复以上的步骤,直到没有任何一对数字需要比较。
在此过程中,每个数会与其他所有数一一比较,一共会进行n(n-1)/2次比较,其中n为要排序的元素个数。最坏情况下是完全逆序,排序过程需要进行n(n-1)/2次交换,时间复杂度为O(n²)。
以下是冒泡排序的Python代码示例:
def bubble_sort(arr): n = len(arr) # 遍历所有数组元素 for i in range(n): # range(n)也可以改为range(len(arr)-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