欢迎访问宙启技术站
智能推送

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),这里只是介绍了简单的排序算法,实际中还有更高效的排序算法,比如快速排序、归并排序等。