数据结构--排序--冒泡排序BubbleSort--python语言描述

数据结构

排序

冒泡排序

1、描述:冒泡排序是两两比较待排序记录的关键字,如果次序相反则交换两个记录的位置,直到序列中所有记录有序排列。若是按照升序排列,每趟将序列元素中最大值元素交换到最后的位置,就像气泡从水里面冒出来一样。

2、python代码及注释如下:

# -*- coding: utf-8 -*
def BubbleSort(a):#定义冒泡排序函数
    Flag='True' # 检测标志
    i=1 # 设交换次数为i=1
    while i<len(a) and Flag=='True': # 交换次数为:序列最大长度
        Flag='False'
        for j in range(len(a)-i): # 每一次的交换次数j是介于【0,len-i)
            if a[j+1]<a[j]: # 两两比较,大的往后冒泡
                p=a[j+1]
                a[j+1]=a[j]
                a[j]=p
                Flag='True' # 标志位,用来判断是否有某一次检测,所有元素位置没有发生改变,如果没有发生改变那么就可以返回函数结果了
        i+=1
    return a

b=[2,23,18,56,78,70,45,36,72,34] # 测试用例
print BubbleSort(b) # 打印函数输出结果

3、返回结果:

[2, 18, 23, 34, 36, 45, 56, 70, 72, 78]

4、算法性能

    时间复杂度:O(n^(2))

    空间复杂度:O(1)

   稳定性:稳定的排序算法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值