如何实现冒泡排序?

Posted GitPython

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现冒泡排序?相关的知识,希望对你有一定的参考价值。

重磅干货,第一时间送达


本栏目,每周一至周五,每天分享一道Pyt hon趣味实战题目,旨在共同: 练习编程思维、巩固基础知识、感受实战的趣味性。




 
   
   
 
今日题目:
输入三个整数 x,y,z,请把这三个数由小到大输出。

解法:
1.冒泡排序
2.内置的sorted()函数

01 冒泡排序

那么,什么是冒泡排序?

冒泡排序的核心思想就是:依次比较两个相邻的元素,如果顺序(如从大到小)错误,就把他们交换过来。

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。


动图演示

冒泡排序python的源码实现:

  
    
    
  
num = [12923]

# 用于排序的回合数
for i in range(len(num)):

    # 用于每一轮的比较大小,并交换位置
    for j in range(len(num) -i -1):

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

            # 交换两个数的位置
            num[j], num[j+1] = num[j+1], num[j]

print(num)
[91223]


02 sorted()函数

如果不想自己手动实现排序算法,可以用内置的sorted()函数实现。
具体用法如下:

  
    
    
  
sorted(iterable, cmp=None, key=None, reverse=False)


iterable -- 可迭代对象

key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序

reverse -- 排序规则,reverse = True 降序,reverse = False升序(默认)

因此,本题的第二种解法:


  
    
    
  
before = [12923]
after = sorted(before)
print(after)
[91223]


关于sorted()函数,更直观的例子:

  
    
    
  
students = [('john''A'15), ('jane''B'12), ('dave''B'10)]
after_students = sorted(students, key=lambda s: s[2], reverse=True)  # 按降序
print(after_students)
[('john''A'15), ('jane''B'12), ('dave''B'10)]

关于lamda匿名函数,参见文章:


总结一下,
本题的核心知识点:


1、冒泡排序的思想和python实现
2、sorted()函数的使用方法
3、lambda()匿名函数的应用

 
   
   
 
-END-

|往期实战|

   
     
     
   




以上是关于如何实现冒泡排序?的主要内容,如果未能解决你的问题,请参考以下文章

python代码实现鸡尾酒排序(双向冒泡排序)

经典算法学习——链表实现冒泡排序

交换排序(冒泡排序快速排序的算法思想及代码实现)

排序算法之冒泡选择插入排序(Java)

排序算法之冒泡选择插入排序(Java)

66. 冒泡排序如何实现?如何优化?