document.write('
冒泡排序顾名思义就是整个过程就像气泡一样往上升,单向冒泡排序的基本思想是(假设由小到大排序):对于给定的n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换其位置,进行一轮比较和换位后,n个记录中的最大记录将位于第n位;然后对前(n-1)个记录进行第二轮比较;重复该过程直到进行比较的记录只剩下一个时为止。
    以数组{36,25,48,12,25,65,43,57}为例(假设要求为升序排列),具体排序过程如下:
    初始状态:[36 25 48 12 25 65 43 57]
    1次排序:[25 36 12 25 48 43 57 65]
    2次排序:[25 12 25 36 43 48] 57 65
    3次排序:[12 25 25 36 43] 48 57 65
    4次排序:[12 25 25 36] 43 48 57 65
    5次π序:[12 25 25] 36 43 48 57 65
    6次排序:[12 25] 25 36 43 48 57 65
    7次排序:[12] 25 25 36 43 48 57 65
    示例代码如下:
    def bubble_sort(lists):
    #冒泡排序
    count=len(lists)
    for i in range(0,count):
    for j in range(i+1,count):
    if lists[i]>lists[j]:
    lists[i], lists[j]=lists[j], lists[i]
    return lists
    
 
    if __name__=="__main__":
    lists=[3,4,2,8,9,5,1]
    print \'排序前序列为:\',
    for i in lists:
    print i,
    print \'\\n排序后结果为:\',
    for i in (bubble_sort(lists)):
    print i,
    程序的运行结果为:
    排序前序列为:3 4 2 8 9 5 1
    排序后结果为:1 2 3 4 5 8 9

    冒泡排序是一种稳定的排序方法,最好的情况下的时间复杂度为O(n),最坏情况下时间复杂度为O(n2),平均情况下的时间复杂度为O(n2)。空间复杂度为O(1)。 

');