冒泡排序

冒泡排序:
        比较第1个数和第2个数,如果第1个数大于第2个数,则调换他们的顺序,即把更大的数放在后面,
        对  第2个数  和第3数,重复此操作...,  最后,整个列表中最大的数就被换到了最后一个位置,
        把数值从低位慢慢到高位的过程,比喻成冒泡。
        之后再对[0,  -1],  做同样的操作,冒第2个泡,之后再重复,直至完成所有冒泡
        

循环实现:
def bubble_sort_iteration(datas):
    length = len(datas)
    k = length - 1
    j = 1
    while j <= k:
        i = 0
        while i < length - j:
            if datas[i] > datas[i+1]:
                temp = datas[i]
                datas[i] = datas[i+1]
                datas[i+1] = temp
            i += 1
        j += 1
    return datas

        
        

递归实现:
def bubble_sort_recursion(datas):
    def _bubble(end_index):
        if end_index == 0:
            return
        for i in range(0, end_index):
            if datas[i] > datas[i+1]:
                temp = datas[i]
                datas[i] = datas[i+1]
                datas[i+1] = temp
        _bubble(end_index - 1)
    _bubble(len(datas) - 1)
    return datas

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