python排序算法之一:冒泡排序(及其优化)

# coding=utf-8



# def magic_bubble_sort(numbers):
#     num = len(numbers)
#     for j in range(num - 1):
#             print('j===', j)
#             for i in range(num - j - 1):
#                 print('i', i)
#                 if numbers[i] > numbers[i + 1]:                     
#                      numbers[i], numbers[i + 1] = numbers[i + 1], numbers[i]
#                      print(numbers[i], numbers[i + 1])
#     return numbers

def magic_bubble_sort(numbers):
    for i in range(len(numbers) - 1):  
        #print('i', i)
        ex_flag = False  # 改进后的冒泡,设置一个交换标志位
        #print('1ex', ex_flag)
        for j in range(len(numbers) - i - 1):              
            if numbers[j] > numbers[j + 1]:
                numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j]
                ex_flag = True
        #print(ex_flag)
        #print(numbers)
        if not ex_flag:
            return numbers  # 这里代表计算机偷懒成功 (〃'▽'〃)

    return numbers  # 这里代表计算机没有偷懒成功 o(╥﹏╥)o


if __name__ == '__main__':
    numbers = [23, 32, 1, 3, 4, 19, 20, 2, 4]
    print(magic_bubble_sort(numbers))

链接: python排序算法之一:冒泡排序(及其优化)

posted @ 2023-04-07 14:36  yy9knsg  阅读(71)  评论(0)    收藏  举报