冒泡排序(Bubble Sort),是一种较简单的排序算法。
冒泡排序算法原理:
开始时扫描整个序列,在扫描过程中两两比较相邻记录,如果第一个数比第二个数大,就交换他们,这样第一趟下来,最大的记录就会被“沉到”序列的最后面一个位置,第二趟开始扫描除了最后一个元素中的第二大记录并“沉到”倒数第二个位置,重复上述操作,直到n - 1扫描后,整个序列就排好序了。如下图所示:
Python实现冒泡核心代码如下:
def bubbleSort(list1) :
n = len(list1)
for i in xrange(n - 1) :
#控制比较的趟数
for j in xrange(n - i - 1) :
#控制每一趟比较n - i个元素
if list1[j] > list1[j + 1] :
#两两比较,前大于后则交换
tmp = list1[j]
list1[j] = list1[j + 1]
list1[j + 1] = tmp
该算法的基本语句是双层循环中的比较语句,其时间复杂度为O(n2)。