接上回,之前说过在做美女人体艺术站,需要采集数据,使用的是python进行采集,从而开始学习python语法知识,现在分享下使用python进行冒泡排序的语句
冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
冒泡排序算法的运作如下:
-
比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。
-
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
-
针对所有的元素重复以上的步骤,除了最后一个。
-
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
代码实现:
1 2 3 4 5 6 7 8 9 10 |
def bubble_sort(alist):
for j in range ( len (alist) - 1 , 0 , - 1 ):
# j表示每次遍历需要比较的次数,是逐渐减小的
for i in range (j):
if alist[i] > alist[i + 1 ]:
alist[i], alist[i + 1 ] = alist[i + 1 ], alist[i]
li = [ 54 , 26 , 93 , 17 , 77 , 31 , 44 , 55 , 20 ]
bubble_sort(li) print (li)
|
时间复杂度
-
最优时间复杂度:O(n) (表示遍历一次发现没有任何可以交换的元素,排序结束。)
-
最坏时间复杂度:O(n2)
-
稳定性:稳定
相关推荐
在Python中实现冒泡排序,我们可以利用其简洁的语法特性,编写出优雅的代码。 首先,我们来详细解释冒泡排序的工作原理。冒泡排序的时间复杂度为O(n^2),其中n是待排序数组的长度。它包括以下步骤: 1. **初始化**...
12. **算法与数据结构**:基础算法如排序(冒泡、选择、插入、快速、归并等)、搜索(线性、二分查找)、图与树的遍历等,以及复杂度分析。 13. **网络编程**:基础的TCP/IP通信,socket编程,HTTP协议的理解,以及...
本节我们将深入探讨如何使用这些基础概念来实现冒泡排序,这是一个简单的排序算法,适合初学者学习。 首先,我们要理解`if`语句。在Python中,`if`语句用于进行条件判断,其基本语法如下: ```python if condition...
初学者可以通过阅读这段代码来了解Python的基本语法,以及理解简单排序算法的实现原理。 通过阅读并理解这样简短但涵盖两个知识点的例子,可以加深对语言和算法的理解,为学习更高级的内容打下基础。因此,我认为这个...
了解了Python冒泡排序和Vim的基础知识后,我们可以结合使用。例如,在Vim中打开Python冒泡排序的代码文件,用`:wq`保存并退出,或者`:w`只保存不退出。在Vim的命令行模式中,你可以使用`:!python3 %`命令运行当前...
在Python中,我们可以使用简洁的语法来实现这一过程。以下是对Python实现冒泡排序的详细解释。 首先,冒泡排序的基本思想是重复遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列...
9. **第二十至二十二章:数据结构与算法** - 讨论栈、队列、堆、树等数据结构,以及排序和查找算法,如冒泡排序、快速排序和二分查找。 10. **第二十三至二十四章:数据库编程** - 了解如何使用Python连接和操作...
在Python中实现冒泡排序,我们可以利用其简洁的语法特性,写出优雅的代码。 首先,我们要理解冒泡排序的基本步骤: 1. 比较相邻的元素,如果前一个比后一个大,则交换这两个元素的位置。 2. 对每一对相邻元素做同样...
- 排序算法:包括冒泡排序、选择排序、插入排序、快速排序、归并排序等。 - 查找算法:线性查找、二分查找等。 - 动态规划:解决最优化问题,如背包问题、最长公共子序列等。 - 图形算法:路径查找、最短路径...
- **冒泡排序**:通过重复比较相邻元素并交换顺序来对列表进行排序的一种简单方法。 - **快速排序**:采用分治策略,通过选择一个“基准”值将数组分成两个子数组,然后递归地排序这两个子数组。 - **归并排序**...
在这个主题"python冒泡排序-18-公共操作之运算符乘号"中,我们将深入探讨Python中的乘号运算符以及如何在冒泡排序算法中应用它。 首先,让我们讨论Python中的乘号运算符。在Python中,`*`符号有两个主要用途:乘法...
冒泡排序是一种基础排序算法,通过不断交换相邻元素来实现排序,而运算符加号在Python中则有多种用途。 首先,让我们深入理解冒泡排序。冒泡排序的基本思想是重复地走访要排序的数列,一次比较两个元素,如果他们的...
4. **算法与数据结构**:这部分是技术面试的核心,常见的面试题包括排序算法(如冒泡、选择、快速、归并等)、查找算法(二分查找、哈希查找等)、树结构(二叉树、AVL树、红黑树等)和图算法(Dijkstra、Floyd等)...
通过本章的学习,初学者可以掌握Python编程的基础,包括如何在IDLE中编写、保存和运行程序,理解Python的基本语法,以及运用简单的算法实现数字排序。这些基础知识将为后续更深入的Python学习打下坚实的基础。在实践...
堆排序利用了完全二叉树的特性,通过构建最大堆(或最小堆)来实现排序。最大堆是父节点的值大于或等于其子节点的值,反之则为最小堆。在Python中,可以使用heapq模块来实现堆排序。 7. **二分查找**: 二分查找...
Python是一种高级编程语言,以其简洁明了的...总的来说,这个Python基础教程通过实例详细解释了列表排序的方法,包括使用内置函数和实现基本排序算法。这些知识对于学习Python编程和提高问题解决能力是非常有价值的。
在Python中实现冒泡排序,同样涉及循环和条件判断: 1. V1.0 版本通常会用两层for循环实现,外层循环控制遍历次数,内层循环进行相邻元素的比较和交换。 2. V2.0 版本可能加入一个标志位,用于检测是否进行了交换...
在经典算法方面,我们可以想到许多重要的概念,如排序算法(快速排序、归并排序、冒泡排序、插入排序等)和查找算法(二分查找、线性查找等)。这些算法在处理大量数据时具有重要作用,对提升程序性能至关重要。 ...
冒泡排序通过不断交换相邻的逆序元素实现排序,时间复杂度同样为O(n^2)。Python 实现如下: ```python def bubble_sort(sort_list): iter_len = len(sort_list) if iter_len < 2: return sort_list for i in ...
- **数组排序**:使用冒泡排序对数组进行排序。 - 示例代码: ```python for i in range(size): for j in range(i + 1, size): if array[i] [j]: temp = array[i] array[i] = array[j] array[j] = temp ```...