冒泡排序python实现

名字来源:

大数(or小数)经由交换会慢慢浮到列表末尾,就像沸腾的泡泡一样,从锅底往上冒泡.

具体实现:

两两比较,每次比较完一趟后,趟数减少(因为第一个数or最后一个数确定了它的位置,排序过程它的位置都不会变化)

实现对输入字符串的排序
mystr='ABDKKDF'
mylist=list(mystr)
flag=False  #默认是需要排序的
print('Before sorting:',mystr)
length=len(mylist)
for i in range(length):#比较的趟数
    flag = True  # 可能当前序列是有序的
    for j in range(length-i-1):  # 每趟要和哪些元素进行比较
        if mylist[j]<mylist[j+1]:  #值小的数每次都往最后挤兑
            mylist[j],mylist[j+1]=mylist[j+1],mylist[j]
            flag=False   # 一旦进入条件语句,全切当前是无序的
    if flag:#可能排到某个时候,就直接是有序的
        break
mystr="".join(mylist)
print('After sorting:',mystr)

分析:

比较的次数,只弄到length-i-1的原因: 以i为0为例子,你只要排到length-2即可,因为最终我们会比较mylist[j](倒一)和mylist[j+1](倒二)的大小

你可能感兴趣的:(冒泡排序python实现)