美文网首页
八大排序之冒泡排序

八大排序之冒泡排序

作者: 圣堂刺客_x | 来源:发表于2020-03-03 09:04 被阅读0次

概述

百度百科解释:冒泡重复地走访过要排序的元素列,依次比较两个相邻的元素,如 果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素 的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或 降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒 泡排序”。

以[9,5,4,3,2]为例

总结

对一个长度为n的数组进行排序归纳总结如下:

  1. 对有n个元素的数组进行排序需要经过n-1轮
  2. 第i轮比较的次数为n-i

算法

使用两层循环即可实现我们的冒泡排序的算法:

  1. 使用for循环控制排序的轮数,排序的轮数为n-1,n为数组的长度
  2. 内层嵌套for循环控制每轮排序的次数,每轮排序的次数为n-i
  3. 排序过程中依次比较arr[i]与arr[i+1]如果arr[i]>arr[i+1],交换两者位置
  4. 外层循环结束后返回原数组

代码实现

def bubble(arr):
    n = len(arr)
    for i in range(n-1): #控制排序的轮数
        for j in range(n-1-i):#控制排序的次数 
            if arr[j]>arr[j+1]:
                arr[j],arr[j+1] = arr[j+1],arr[j]
    return arr

时间复杂度

冒泡排序一共遍历了n-1 + n-2 + … + 2 + 1 = n * (n-1) / 2 = (n2- n)/2次, 最大的影响 因子是n2 因此冒泡排序总的平均时间复杂度为 O(n2)

相关文章

  • 经典排序算法总结

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

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

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

  • 算法❤ 八大排序算法

    八大排序法【内部排序】:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序 【插入排序】...

  • 笔记||冒泡排序

    冒泡排序是最出名的排序算法之一,总共有八大排序 所谓冒泡排序也就是,两层循环,外层表示冒泡轮数,里面依次比较。pa...

  • 八大排序算法

    八大排序:一、直接插入排序 二、希尔排序 三、简单选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序 ...

  • 2020-04-30-排序算法

    冒泡排序 直接选择排序 插入排序 快速排序 参考 算法学习笔记17-经典排序算法八大排序算法稳定性分析

  • 冒泡排序法

    python排序算法之冒泡排序 首先说一下冒泡排序原理: 冒泡排序(Bubble Sort),是一种计算机科学领域...

  • 排序系列之四: 冒泡排序法

    Hello,大家好。今天继续给大家讲解排序系列之☞《冒泡排序算法》 冒泡排序(Bubble Sort)...

  • 常见排序算法之冒泡排序

    常见排序算法之冒泡排序 冒泡排序(Bubble Sort),是一种较简单的排序算法。它重复地走访过要排序的元素列,...

  • 算法之冒泡排序

    算法之冒泡排序 一:基本概念冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序;它是一种比较简单的排序...

网友评论

      本文标题:八大排序之冒泡排序

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