冒泡排序python_基于python的冒泡排序算法

本文,用python对一串数字进行排序,用最简单的冒泡排序算法。

94af5fc1b727ac53b067d6992ecadce891489944.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

工具/原料

python3.6

time模块(用来查看运行时间)

random模块(用来生成随机序列)

jupyter编译器

方法/步骤

1

先来构造一个随机序列:

import random

shuzi = [random.randint(0,10000000) for _ in range(3000)]

76b6860e5f2043719f347195323acd8921c58f44.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

2

自定义一个函数,对数字进行排序:

def pao(c):

n = len(c)-1

while n>0:

for i in range(0,n):

if c[i]>c[i+1]:

c[i],c[i+1]=c[i+1],c[i]

n-=1

print(c)

return c

589f5b078801387019ae7d392d08a50f95fc8344.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

3

给出序列c,用自定义的函数进行排序。

c=[5,3,6,9,53,62,65,3,2,5,]

pao(c)

这个函数给出了排序的具体过程。

c6b994775ddd884c32a568926cef28066a01f644.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

4

看一下排序所用的时间:

import time

a=time.clock()

c=[5,3,6,9,53,62,65,3,2,5,]

pao(c)

b=time.clock()

print('用时%s秒'%(b-a))

90c61d1c99c0affc0269639a2372941fbfe4ea44.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

5

用这个方法,对shuzi进行排序。不过要注意,由于shuzi里面的数字太多,这里不要输出,我们只关心排序所用的时间。

7830e01d96d818198ecfe078876efbf203b3de44.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

6

如果换成是30000个随机数字,排序耗时长达70多秒。

983aa5f4da5872da27a626ba0056ad042f68d444.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

END

注意事项

对比步骤5和6所用的时间,数字增加了10倍,耗时增加到了100倍。

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

举报作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。

展开阅读全部

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值