跳至正文
View Categories

< 1 min read

冒泡排序算法 #

  1. 冒泡排序算法介绍
  2. 冒泡排序算法原理
  3. 冒泡排序算法的实现

收获 #

学完本节内容,可以初步理解并掌握冒泡排序算法。

冒泡排序算法介绍 #

冒泡排序(Bubble Sort)是一种常见的排序算法,相对来说比较简单。
冒泡排序重复地走访需要排序的元素列表,依次比较两个相邻的元素,如果顺序(如从大到小或从小到大)错误就交换它们的位置。重复地进行直到没有相邻的元素需要交换,则元素列表排序完成。
在冒泡排序中,值最大(或最小)的元素会通过交换慢慢“浮”到元素列表的“顶端”。就像“冒泡”一样,所以被称为冒泡排序

冒泡排序算法原理 #

冒泡排序的原理如下:

  1. 比较相邻的两个元素。如果第一个比第二个大则交换他们的位置(升序排列,降序则反过来)。
    if num[1]>num[2]: 
        num[1],num[2]=num[2],num[1]
  1. 从列表的开始一直到结尾,依次对每一对相邻元素都进行比较。这样,值最大的元素就通过交换“冒泡”到了列表的结尾,完成第一轮“冒泡”。
    while i<=end:
        if num[i]>num[i+1]:
            num[i],num[i+1]=num[i+1],num[i]
  1. 重复上一步,继续从列表开头依次对相邻元素进行比较。已经“冒泡”出来的元素无需重复比较。每轮比较会有一个元素“冒泡”成功。每轮需要比较的元素个数会递减,一直到只剩一个元素没有“冒泡”时(没有任何一对元素需要比较),则列表排序完成。

冒泡排序算法的实现 #

python实现代码如下:

a=[10,17,50,7,30,15,5,38,21]
n=len(a)
for i in range(n):
    for j in range(0,n-i-1): #已“冒泡”过的无需重复比较,每轮循环“冒泡”一个
        if a[j]>a[j+1]:
            a[j],a[j+1]=a[j+1],a[j] #数值交换
print(a)

小结 #

理解并掌握冒泡排序算法的原理
掌握冒泡排序的代码实现

习题 #

  1. 习题1:画出冒泡排序算法的流程图
  2. 习题2:使用冒泡排序算法,对列表[10, 17, 50, 7, 30, 24, 27, 45, 15, 5, 36, 21]进行升序排列