冒泡排序的原理

冒泡排序是一种简单的排序算法,它通过重复地遍历待排序的列表,比较相邻的元素并交换它们的位置来实现排序。具体原理如下:

冒泡排序的基本思想

冒泡排序的核心思想是通过相邻元素的比较和交换,将较大的元素逐步"冒泡"到列表的末尾。每一轮遍历都会确定一个最大元素的位置,经过多轮遍历后,整个列表就会变得有序。

冒泡排序的步骤

  1. 从列表的第一个元素开始,依次比较相邻的两个元素。
  2. 如果前一个元素大于后一个元素,则交换它们的位置。
  3. 继续遍历列表,直到最后一个元素。
  4. 重复上述过程,每次遍历都会减少一个需要比较的元素,因为每次遍历后,最大的元素已经"冒泡"到正确的位置。
  5. 当没有元素需要交换时,排序完成。

冒泡排序的代码示例

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

# 示例
arr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = bubble_sort(arr)
print("排序后的数组:", sorted_arr)

冒泡排序的时间复杂度

冒泡排序的时间复杂度为 O(n^2),其中 n 是列表的长度。在最坏的情况下,需要进行 n*(n-1)/2 次比较和交换。尽管冒泡排序的效率较低,但由于其实现简单,常被用于教学或小规模数据的排序。

相关推荐
r0ad16 分钟前
读诗的时候我却使用了自己研发的Chrome元素截图插件
前端·javascript·chrome
IT_陈寒1 小时前
React性能优化实战:这5个Hooks技巧让我的应用快了40%
前端·人工智能·后端
江天澄1 小时前
HTML5 中常用的语义化标签及其简要说明
前端·html·html5
知识分享小能手1 小时前
jQuery 入门学习教程,从入门到精通, jQuery在HTML5中的应用(16)
前端·javascript·学习·ui·jquery·html5·1024程序员节
美摄科技1 小时前
H5短视频SDK,赋能Web端视频创作革命
前端·音视频
黄毛火烧雪下2 小时前
React Native (RN)项目在web、Android和IOS上运行
android·前端·react native
fruge2 小时前
前端正则表达式实战合集:表单验证与字符串处理高频场景
前端·正则表达式
baozj2 小时前
🚀 手动改 500 个文件?不存在的!我用 AST 撸了个 Vue 国际化神器
前端·javascript·vue.js
用户4099322502122 小时前
为什么Vue 3的计算属性能解决模板臃肿、性能优化和双向同步三大痛点?
前端·ai编程·trae
海云前端12 小时前
Vue首屏加速秘籍 组件按需加载真能省一半时间
前端