python排序算法01冒泡排序

01冒泡排序

描述

冒泡算法属于入门级算法,主要通过循环,进行向上的两两比较,从而达到冒泡的效果具体方法是针对循环中的每一元素,都对它后面的元素循环比较,交换大小值,每次循环“冒”一个最
大值(或最小值)放在里层循环初始的地方。
python中的具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python
#-* coding=utf-8 -*-
'''
冒泡排序 for python
'''
def bubbleSort(L):
assert(type(L)==type(['']))
length = len(L)
if length==0 or length==1:
return L
for i in xrange(length):
for j in xrange(length-1-i):
if L[j] < L[j+1]:
temp = L[j]
L[j] = L[j+1]
L[j+1] = temp
return L
pass

冒泡优点: 稳定(时间复杂度为O(1)常量)、简单
缺点:效率不高 (如果一个数组有n个数,那么排序完成后需要比较n*(n-1)/2次)