#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:Richard_Kong
"""
冒泡排序:是一种简单的排序算法。它重复的遍历要排序的数列,一次比较量两个元素,如果他们的顺序错误就把他们的顺序交换过来。
遍历数列的工作时重复的进行直到没有再需要交换,也就是说该数列已经排序完成。
冒泡排序的算法运作如下:
1、比较相邻的元素。如果第一个比第二个大,就交换他们(这是升序)
2、对每一对相邻元素作同样的工作,从开始第一队到结尾最后一对,这部做完后,最后的元素会是最大的数
3、针对所有的元素重复以上的步骤,除了最后一个
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
根据原理来计算冒泡排序的时间复杂度:
第一次排序需要计算n-1次,第二次需要n-2次 .......1次
相加n-1 + n-2 + n-3 + .... +2 +1 = n(n-1)/2 = O(n^2)
所以时间复杂度为O(n^2)
"""
def bubble_sort(alist):
"""
冒泡排序算法,range(1,5,1)从1到5间隔1
:param alist:穿入需要排列的数据
:return:
"""
for j in range(len(alist)-1,0,-1):
for i in range(j):
if alist[i] > alist[i+1]:
alist[i],alist[i+1] = alist[i+1],alist[i]
lis = [98,12,34,1,2,13,45,6,12,34,44,56]
bubble_sort(lis)
print(lis)