简述一下什么是冒泡排序? - 面试宝典
【摘要】 冒泡排序是一种简单的排序算法。它通过多次遍历待排序的元素,每次比较相邻的两个元素,如果顺序不正确则交换它们的位置,直到所有元素按照升序(或降序)排列。在每次遍历中,较大(或较小)的元素会像气泡一样逐渐上浮(或下沉),因此得名冒泡排序。 冒泡排序的基本思想是从列表的第一个元素开始,依次比较相邻的两个元素,如果顺序不正确则交换它们的位置,直到列表末尾。经过一轮遍历后,最大(或最小)的元素会被放置...
冒泡排序是一种简单的排序算法。它通过多次遍历待排序的元素,每次比较相邻的两个元素,如果顺序不正确则交换它们的位置,直到所有元素按照升序(或降序)排列。在每次遍历中,较大(或较小)的元素会像气泡一样逐渐上浮(或下沉),因此得名冒泡排序。 冒泡排序的基本思想是从列表的第一个元素开始,依次比较相邻的两个元素,如果顺序不正确则交换它们的位置,直到列表末尾。经过一轮遍历后,最大(或最小)的元素会被放置在列表的末尾。然后继续进行下一轮遍历,但这次只需要遍历到倒数第二个元素,以此类推,直到所有元素都按照排序顺序排列。 冒泡排序的时间复杂度为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)