美文网首页
python排序算法之一:冒泡排序(及其优化)

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

作者: 栈先生 | 来源:发表于2019-12-05 20:49 被阅读0次

普通版:

def bubble_sort(nums):
    for i in range(len(nums) - 1):  
        for j in range(len(nums) - i - 1):    
            if nums[j] > nums[j + 1]:
                nums[j], nums[j + 1] = nums[j + 1], nums[j]
    return nums

动态展示一下冒泡排序过程:


image.png

假设现在有一个数组[6,1,2,3,4,5],当我们进行完第一次冒泡排序过程后变为[1,2,3,4,5,6],这时候数组已经变成有序的了,程序要是再继续循环岂不是一直在做无用功,那怎么知道数组已经是有序的了呢?计算机又不跟你我一样能眼观大局,它看不到怎么办呢,于是它就再试一次呗,接下来再进行一次冒泡排序,1和2, 2和3, 3和4, 4和5, 5和6(好累,幸亏就tm六个数)依次冒泡。

优化版:(添加一个判断位)

def bubble_sort(nums):

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

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

相关文章

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

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

    普通版: 动态展示一下冒泡排序过程: 假设现在有一个数组[6,1,2,3,4,5],当我们进行完第一次冒泡排序过程...

  • 前端算法学习-第一篇

    冒泡排序算法 冒泡排序算法是最慢的排序算法之一,也是最容易实现的排序算法。之所以叫冒泡排序是因为使用这种算法排序时...

  • Python排序算法有哪几种?

    python排序算法有哪些?python中常见的排序算法有:插入排序、选择排序、冒泡排序、快速排序、归并排序、希尔...

  • Java语言——数组排序算法

    数组有很多常用的算法,包括冒泡排序、直接选择排序和反转排序。 一、冒泡排序 冒泡排序是最常用的数组排序算法之一,它...

  • 排序算法详细代码实现

    算法分类 算法时间复杂度 选择排序 插入排序 C++实现 Python实现 冒泡排序 Python实现 归并排序 ...

  • 前端常见的排序算法算法

    冒泡排序 我们先来了解一下冒泡排序算法,它是最慢的排序算法之一,但也是一种最容易实现的排序算法。之所以叫冒泡排序是...

  • 七大排序算法之冒泡排序

    七大排序算法之冒泡排序 @(算法笔记)[排序算法, 冒泡排序, C++实现] 冒泡排序介绍 冒泡排序是七大排序算法...

  • 算法-冒泡排序

    算 法:冒泡排序算法时间复杂度: 冒泡排序算法概述 冒泡排序伪代码 冒泡排序实现 冒泡排序算法概述 冒泡排...

  • 从0开始——排序

    0.排序的复杂度比较 1.冒泡排序 冒泡排序基础版本1 正宗冒泡排序优化版本 2.选择排序 3.插入排序算法 4....

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/aipjgctx.html