八大排序算法之冒泡排序

 算法思想:从前往后遍历列表,每次选取列表中两个数进行比较,如果不符合排序的规则,则进行交换这样一次遍历后,最大(最小)的元素就会像气泡一样到达最后位置,从而达到交换的目的

设计步骤:

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

算法优点:稳定,不需要大量额外的空间开销

缺点:慢

时间复杂度:O(n^2)

代码实现:

def get_number(num):
import random
lst = []
i = 0
while i < num:
lst.append(random.randint(0,100))
i += 1
return lst
def bubble_sort(L):
 
    length = len(L)
    if length < 2:
        return L
    for i in xrange(length):
        for j in xrange(length - i - 1):
            if L[j] > L[j+1]:
                L[j], L[j+1] = L[j+1], L[j]
    return L

a = get_number(10)
print("排序之前:",a)
b = bubblesort(a)
print("排序之后:",b)

  排序效果:

  

 

posted @ 2017-06-02 18:59  看雪。  阅读(309)  评论(0编辑  收藏  举报