简述一下什么是冒泡排序? - 面试宝典

举报
皮牙子抓饭 发表于 2023/08/25 09:12:01 2023/08/25
【摘要】 冒泡排序是一种简单的排序算法。它通过多次遍历待排序的元素,每次比较相邻的两个元素,如果顺序不正确则交换它们的位置,直到所有元素按照升序(或降序)排列。在每次遍历中,较大(或较小)的元素会像气泡一样逐渐上浮(或下沉),因此得名冒泡排序。 冒泡排序的基本思想是从列表的第一个元素开始,依次比较相邻的两个元素,如果顺序不正确则交换它们的位置,直到列表末尾。经过一轮遍历后,最大(或最小)的元素会被放置...

冒泡排序是一种简单的排序算法。它通过多次遍历待排序的元素,每次比较相邻的两个元素,如果顺序不正确则交换它们的位置,直到所有元素按照升序(或降序)排列。在每次遍历中,较大(或较小)的元素会像气泡一样逐渐上浮(或下沉),因此得名冒泡排序。 冒泡排序的基本思想是从列表的第一个元素开始,依次比较相邻的两个元素,如果顺序不正确则交换它们的位置,直到列表末尾。经过一轮遍历后,最大(或最小)的元素会被放置在列表的末尾。然后继续进行下一轮遍历,但这次只需要遍历到倒数第二个元素,以此类推,直到所有元素都按照排序顺序排列。 冒泡排序的时间复杂度为O(n^2),其中n是待排序元素的个数。尽管冒泡排序的时间复杂度较高,但它的实现简单,适用于小规模的排序问题

以下是一个使用Python实现的冒泡排序的示例代码:

pythonCopy codedef bubble_sort(arr):
    n = len(arr)
    
    for i in range(n):
        # 每一轮遍历后,最大的元素已经被放置在列表的末尾,所以下一轮遍历时只需遍历到倒数第 i+1 个元素
        for j in range(0, n-i-1):
            # 如果相邻的两个元素顺序不正确,则交换它们的位置
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    
    return arr

使用示例:

pythonCopy codearr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = bubble_sort(arr)
print(sorted_arr)

输出结果:

plaintextCopy code[11, 12, 22, 25, 34, 64, 90]

以上代码中,我们通过两层循环来实现冒泡排序。外层循环控制遍历的轮数,内层循环用于比较相邻元素并交换位置。通过多次遍历,每轮都将最大的元素放置在列表的末尾,直到所有元素都按照升序排列。最后返回排序后的列表。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。