龙空技术网

干货|python笔记1-冒泡排序

周绪龙 113

前言:

今天看官们对“python冒泡算法”大概比较注重,同学们都需要剖析一些“python冒泡算法”的相关资讯。那么小编也在网上汇集了一些有关“python冒泡算法””的相关内容,希望小伙伴们能喜欢,姐妹们快快来学习一下吧!

面试的时候经常有面试官喜欢问如何进行冒泡排序?这个问题相信可以难倒一批的同学,本篇就详细讲解如何用python进行冒泡排序。

基本原理

01概念:

冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。

它重复地走访过要排序的数列,一次要比较两个元素,如果这两个元素的顺序错误就将他们两个交换过来。走访数列的工作是重复进行的,直到没有再需要交换的元素,也就说该数列已经完成排序了。

这个算法名字的由来就是因为大的元素会通过交换慢慢“浮”到数列的顶端。

02算法原理:

冒泡排序算法的运作如下:(从后向前)

比较相邻的两个数,如果第一个数比第二个数大,则两数交换。对之后的相邻元素进行同样的工作,从开始到最后一对,这样进行一次排序后,数据的最后一位会是最大值 ,第一次循环进行的次数为 arr.length-1。之后对所有的元素重复以上的步骤,且以后每次循环的次数为arr.length-1-i (i为循环第几次 ,i 从零开始);重复上述步骤,直到排序完成。

交换两个数

1.如果a = 10 , b = 20如何交换两个数呢?

2.实现两个数的交换原理其实很简单,设一个临时变量c就可以了:

>先把a的值传给c,此时c的值就是10了,a的值还是10

>然后把b的值传给a,此时a的值是20,b的值还是20

>最后把c的值传给b, 此时b的值是10

3.python里面交换两个数不用那么复杂,用这个方法就行了:

>a , b = b, a

遍历比较相邻的数

1.比如一个队列是:[1, 3, 10, 9, 21, 35, 4, 6]

2.可以做一次遍历,比较相邻的数,后面的数比前面的数小就交换,这样第一次遍历可以把最大的数下沉到最后一个位置。

循环下沉

1.与上面的遍历做比较就只做了一次下沉,把最大的数下沉到最后一个位置上,那接下来就需要把第二大的数,下沉到倒数的第二个位置,依次循环,一直到最小的数在最前面。

2.这里s是先计算li队列的长度,然后把range函数反转了,变成:[7, 6, 5, 4, 3, 2, 1, 0]

sort()排序

说实话,python里面排序只用一个函数就可以搞定:sort()

参考代码

以上是python笔记1—冒泡排序的全部内容,如果觉得对你有帮助,可以添加“收藏”!

如果还有疑问的地方,欢迎评论留言给我们~

标签: #python冒泡算法