冒泡排序(一看就会)

本文详细介绍了冒泡排序的基本原理,通过Python代码演示其操作过程,并指出尽管冒泡排序效率不高,但它作为入门示例具有重要价值。
摘要由CSDN通过智能技术生成

在计算机科学领域,排序算法是基本且重要的技术之一。冒泡排序(Bubble Sort)作为经典的排序算法之一,因其简单的实现和理解而被广泛使用。本文将带您了解冒泡排序的基本原理,并通过Python代码实现来展示其具体操作过程。

冒泡排序原理

冒泡排序的工作原理是通过反复交换相邻的未按顺序排列的元素,直到没有需要交换的元素为止。这个过程类似于水中的气泡上升,较小的元素会逐渐“浮”到数组的顶部,而较大的元素则会“沉”到底部。

冒泡排序步骤

  1. 比较相邻的元素:比较数组中相邻的两个元素,如果第一个元素比第二个元素大,则交换它们的位置。
  2. 对每一对相邻元素做同样的工作:从数组的第一个元素开始,对每一对相邻元素做同样的比较和交换工作,直到最后一对元素。在这一轮结束后,最大的元素会被放到正确的位置。
  3. 重复步骤1和2:对数组中剩下的元素重复步骤1和2,但每次循环时排除已经排序好的最大元素。

Python实现冒泡排序

下面是一个简单的冒泡排序的Python实现

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        # 增加一个标志位,用于优化排序
        swapped = False
        # 将每个元素与它后面的元素比较,如果前者大于后者,则交换它们
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
                swapped = True
        # 如果这一轮没有发生交换,说明数组已经有序,可以退出循环
        if not swapped:
            break
    return arr

# 测试冒泡排序函数
var = [2, 2123, 154, 5, 498, 456, 4165, 4865, 1, 489, 56, 12, 4]
sorted_var = bubble_sort(var)
print(sorted_var)

排序结果如图

图中已有注释这里简单解释一下

这段代码首先定义了一个名为bubble_sort的函数,它接受一个列表arr作为参数。函数内部首先获取列表的长度n,然后通过两层循环来实现排序。外层循环控制排序的轮数,内层循环进行相邻元素的比较和交换。如果在一轮比较中没有发生任何交换,说明列表已经有序,函数通过break语句提前结束排序。

总结

冒泡排序是一种简单直观的排序算法,虽然它的效率并不是很高,但其简洁性和易于实现的特点使其成为一个很好的算法学习入门示例。通过本文的介绍和Python代码实现,希望您能对冒泡排序有更深入的了解。在实际应用中,根据数据规模和性能要求,我们通常会选用更高效的排序算法,如快速排序、归并排序等,但冒泡排序的基础地位仍不可动摇。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值