Python实现简单的排序算法比较
发布时间:2023-12-04 16:16:52
排序算法是计算机科学中最基本也是最常用的算法之一。简单的排序算法是一种将一组数据按照一定规则进行排列的方法。常见的简单排序算法有冒泡排序、选择排序和插入排序。下面将分别介绍这几种排序算法的实现,并给出使用例子。
1. 冒泡排序(Bubble Sort):
冒泡排序是一种基本的排序算法,它的核心思想是通过相邻元素之间的比较和交换,使得较大的元素逐渐“浮”到数列的末尾。具体实现如下:
def bubble_sort(arr):
n = len(arr)
for i in range(n-1):
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# 使用例子
arr = [5, 3, 8, 4, 2]
bubble_sort(arr)
print(arr) # 输出:[2, 3, 4, 5, 8]
2. 选择排序(Selection Sort):
选择排序是一种简单直观的排序算法,它的核心思想是每次从待排序的数据中选择最小(大)的元素放到已排序序列的末尾。具体实现如下:
def selection_sort(arr):
n = len(arr)
for i in range(n-1):
min_index = i
for j in range(i+1, n):
if arr[j] < arr[min_index]:
min_index = j
arr[i], arr[min_index] = arr[min_index], arr[i]
# 使用例子
arr = [5, 3, 8, 4, 2]
selection_sort(arr)
print(arr) # 输出:[2, 3, 4, 5, 8]
3. 插入排序(Insertion Sort):
插入排序是一种简单直观的排序算法,它的核心思想是将一个元素插入到已排序序列中的适当位置,使得插入后的序列仍然有序。具体实现如下:
def insertion_sort(arr):
n = len(arr)
for i in range(1, n):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
# 使用例子
arr = [5, 3, 8, 4, 2]
insertion_sort(arr)
print(arr) # 输出:[2, 3, 4, 5, 8]
上述三种排序算法的时间复杂度均为O(n^2),这里只是介绍了简单的排序算法,实际中还有更高效的排序算法,比如快速排序、归并排序等。
