冒泡排序

时间:2012-03-20

其实在Python中自己实现冒泡排序完全是没有效率的,推荐使用sort函数。

冒泡排序(Bubble Sort)原理:假设列表(类似于其他语言中的数组)长度为L,我们需要循环L次,每轮循环依次为:L、L-1、L-2…..1。每轮循环中,我们需要做的事情就是将列表中的每两个元素比较一次,如果元素1的值大于元素2的值,就将元素1的值放在元素2后面,每轮循环都可以把这轮循环中最小的值放在前面,经过L次循环后,整个列表就按从小到大的顺序排列好了。

num_list = [23, 4, 5, 6234, 666, 23423]
nlist_len = len (num_list)

for i in range (nlist_len) [::-1]:   #这里的 [::-1]是为了让range生成的列表倒序排列
    for n in range (i):                    #每轮就在这里,一轮比一轮的少一次
        if n < nlist_len:                   #不越界
            if num_list [n] > num_list [n+1]:  #如果元素1大于元素2
                temp = num_list [n]           #用临时变量
                del num_list [n]                  #删了该元素1的内存空间
                num_list.insert (n+1,temp) #插入元素

print num_list

注意insert用法,假设:

l = [1,2,4,5]

如果需要把某值插在某个指定的位置:

l.insert (0,111)

上方代码表示将111插入在元素0的位置上。