列表排序之lowB三人组

LowB之老大 冒泡排序

每遍历一次列表就使无序区内最大值或者最小值归位:

    

代码如下:

def bubble_sort(li):
    for i in range(len(li)-1):
        exchange = False
        for j in range(len(li)-1-i):
            if li[j] > li[j+1]:
                li[j], li[j+1] = li[j+1], li[j]
                exchange = True
        if not exchange:
            break
bubble_sort

 

LowB三人组之老二 选择排序

 

 

def select_sort(li):
    for i in range(len(li)-1):
        min_pos = i
        for j in range(i+1, len(li)):
            if li[min_pos] > li[j]:
                min_pos = j
        li[min_pos], li[i] = li[i], li[min_pos]

 

 

LowB三人组之老二 插入排序

 

 

 

 

def insert_sort(li):
    for i in range(1, len(li)):
        tmp = li[i]
        j = i - 1
        while j >= 0 and tmp < li[j]:
            li[j+1] = li[j]  # 代码让位当符合条件的时候插入
            j -= 1
        li[j+1] = tmp  # 看while的判断条件是在和li[j]比 如果大于li[j]自然插在li[j]的后面
insert_sort

 

posted @ 2018-05-01 18:44  沈俊杰  阅读(114)  评论(0)    收藏  举报