内容正文:
63 Python排序算法——冒泡排序
了解排序算法
排序算法是将一组数据按照一定的顺序排列的算法。
常见的排序算法有冒泡排序、插入排序、快速排序等。
在Python中,sort和sorted都用于对可迭代对象进行排序,但它们之间有一些重要的区别:
sort是一个列表(list)对象的方法,它在原地对列表进行排序并修改原列表,不返回新的对象。示例:
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
numbers.sort()
print(numbers)
sorted是一个内置函数,它接受任何可迭代对象作为输入并返回一个新的已排序的列表,原始数据不受影响。示例:
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
sort方法只能用于列表对象,而sorted函数适用于任何可迭代对象,包括列表、元组、字典等。
综上所述,主要区别在于sort是一个方法,会修改原列表,
而sorted是一个函数,返回新的已排序列表。
动态演示
什么是冒泡排序?
冒泡排序(Bubble Sort)是一种简单的排序算法,
它通过反复交换相邻的元素,
将较大的元素逐渐"浮"到数组的末尾,
同时将较小的元素逐渐"沉"到数组的开头。
冒泡排序是一种基本的比较排序算法,
尽管不是最高效的排序算法,但它有助于理解排序算法的基本原理。
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较相邻两个元素,如果他们的顺序错误就把他们交换过来。
走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
交换两个变量:
a=100
b=60
输出结果?
a=60
b=100
位置编号 前后比较 互换
循环 ?次
时间复杂度
冒泡排序的时间复杂度为 O(n^2),其中 n 是数组的长度。尽管冒泡排序在大规模数据上不够高效,但它具有直观的实现和理解,适用于小型数据集或教育目的。
总之,冒泡排序是一种简单的排序算法,通过多次遍历和比较相邻元素来实现排序。了解冒泡排序有助于理解排序算法的基本原理,并为学习更高效的排序算法打下基础。
总结:
$$