目录
前言
排序算法是计算机科学中一个非常基本但又极为重要的主题。无论是数据分析、搜索算法,还是日常编程任务中,排序操作都频繁出现。Python 作为一个高级编程语言,内置了强大的排序功能,同时也允许开发者根据需求自定义排序算法。在这篇博客中,我们将介绍几种常见的排序算法,并展示如何在 Python 中实现它们。
1. 冒泡排序 (Bubble Sort)
冒泡排序是一种简单的交换排序算法。它的基本思想是反复比较相邻的元素,如果前一个元素大于后一个元素,就交换它们的位置,直到整个序列有序为止。
代码示例:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
时间复杂度:
- 最优时间复杂度:O(n) (当列表已经有序)
- 平均时间复杂度:O(n²)
- 最差时间复杂度:O(n²)
冒泡排序虽然简单,但效率较低,特别是对于大规模数据集。
2. 选择排序 (Selection Sort)
选择排序每次从未排序的部分选择最小的元素,将其放到已排序部分的末尾。它是一种不稳定的排序算法。
代码示例:
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i+1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr