python学习之——冒泡排序

# -*- coding: cp936 -*-
import random
#生成1-200之间的随机数
def datalist(num):
    data=[]
    for i in range(0,num):
        data.append(random.randint(1,200))

    return data

#传统意义的冒泡排序
#待排序元素n个,两两进行比较,将最小的放到 第一个位置
#需进行 n-1 次循环,每次 比较的元素均比上次少一个
def bubblesort1(bubblelist):
    listlen=len(bubblelist)
    for i in range(1,listlen):
        for j in range(0,listlen-i):
            if bubblelist[j]>bubblelist[j+1]:
                bubblelist[j],bubblelist[j+1]=bubblelist[j+1],bubblelist[j]
                        
    return bubblelist
            

#冒泡排序升级版:发现不再 交换,则表示排序已经完成

def bubblesort2(bubblelist):
    listlen = len(bubblelist)
    flag=1

    while flag==1:
        for i in range(1,listlen):
            for j in range(0,listlen-i):
                flag = 0
                if bubblelist[j] > bubblelist[j+1]:
                   bubblelist[j],bubblelist[j+1] = bubblelist[j+1],bubblelist[j]
                   flag = 1
        return bubblelist
    
#主函数   
if __name__=='__main__':
    datanum=raw_input("datanum=")
    num=int(datanum)
    numlist=datalist(num)
    print numlist
    print bubblesort2(numlist)
原文地址:https://www.cnblogs.com/cloverclt/p/4757539.html