冒泡排序python例题_零基础学python 15 经典算法:冒泡排序法(课后习题答案)...

这节课我们对于冒泡排序法的课后习题进行一下解答:

回顾一下我们的题目:

上节课我们学习的冒泡排序法,是让我们的list从小到大进行排列,这次我们的任务是,请对冒泡排序法进行一定的修改,加一个参数,让它能够按照我们的定义需要进行从大到小或者从小到大的排序。返回这个排序后的list。

下面是我们需要实现的一些例子,从例子中你可以了解到第二个参数的一些定义规则。假定输入的参数没有错误等问题。

函数调用命令

返回值

bubbleSort([37,87,12,3,0],1)

[0, 3, 12, 37, 87]

bubbleSort([7,8,123,33,1],2)

[123, 33, 8, 7, 1]

bubbleSort([3411,5,32,57,521],1)

[5, 32, 57, 521, 3411]

解析:

这道题很神奇让我们比之前多加了一个参数,使得我们可以通过参数来控制返回的list是从大到小还是从小到大排列。我们可以从要实现的例子中发现丝丝端倪,那就是第二个参数如果是1的时候,返回的list就会从小到大排列,如果是2,就会从大到小排列,明白这一点之后,新定义的参数就很容易弄出来了。

我们需要对新定义的参数进行判断,是1则在判断前一个数大于后一个数的时候才交换位置,是2则在判断前一个数小于后一个数的时候才进行交换。

以下是最后的参考代码:

def bubbleSort(nums, k):

# 请修改代码成题目要求的样子

for i in range(len(nums)-1): # 这个循环负责设置冒泡排序进行的次数

for j in range(len(nums)-i-1): # j为列表下标

if k == 1:

if nums[j] > nums[j+1]:

nums[j], nums[j+1] = nums[j+1], nums[j]

elif k == 2:

if nums[j] < nums[j+1]:

nums[j], nums[j+1] = nums[j+1], nums[j]

return nums

# 测试代码

print("testing bubbleSort for ([37,87,12,3,0],1) result:" + str(bubbleSort([37,87,12,3,0],1)))

print("testing bubbleSort for ([7,8,123,33,1],2) result:" + str(bubbleSort([7,8,123,33,1],2)))

print("testing bubbleSort for ([3411,5,32,57,521],1) result:" + str(bubbleSort([3411,5,32,57,521],1)))

以下是我们的视频教程:

在线观看:

高清源文件下载:

内容已经隐藏,请注册为本站会员后查看

感谢大家的收看,我们下期再见!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值