📜  Python中的排序算法(1)

📅  最后修改于: 2023-12-03 15:04:36.387000             🧑  作者: Mango

Python中的排序算法

在编程中,排序是一种被广泛使用的功能。Python提供了多种排序算法,可以根据不同的应用场景选择合适的算法。

排序算法简介
冒泡排序

冒泡排序(Bubble Sort)是一种基础的排序算法,它的基本思想是通过相邻的元素比较并交换位置,将较大的元素逐渐“冒泡”到数列的末端。具体实现可以参考下面的代码。

def bubble_sort(lst):
    n = len(lst)
    for i in range(n - 1):
        for j in range(n - 1 - i):
            if lst[j] > lst[j + 1]:
                lst[j], lst[j + 1] = lst[j + 1], lst[j]
    return lst
选择排序

选择排序(Selection Sort)是一种简单的排序算法,它的基本思想是每次从未排序的部分中选择最小的元素,将它与已排序部分的末尾元素交换位置。具体实现可以参考下面的代码。

def selection_sort(lst):
    n = len(lst)
    for i in range(n - 1):
        min_idx = i
        for j in range(i + 1, n):
            if lst[j] < lst[min_idx]:
                min_idx = j
        lst[i], lst[min_idx] = lst[min_idx], lst[i]
    return lst
插入排序

插入排序(Insertion Sort)是一种简单的排序算法,它的基本思想是将待排序序列分为已排序部分和未排序部分,然后依次将未排序部分的元素插入到已排序部分的适当位置。具体实现可以参考下面的代码。

def insertion_sort(lst):
    n = len(lst)
    for i in range(1, n):
        j = i
        while j > 0 and lst[j] < lst[j - 1]:
            lst[j], lst[j - 1] = lst[j - 1], lst[j]
            j -= 1
    return lst
快速排序

快速排序(Quick Sort)是一种高效的排序算法,它的基本思想是通过分治策略将待排序序列不断划分成两个子序列,然后对子序列进行递归排序。具体实现可以参考下面的代码。

def quick_sort(lst):
    if len(lst) <= 1:
        return lst
    pivot_idx = len(lst) // 2
    pivot = lst.pop(pivot_idx)
    left, right = [], []
    for num in lst:
        if num < pivot:
            left.append(num)
        else:
            right.append(num)
    return quick_sort(left) + [pivot] + quick_sort(right)
总结

Python中提供了多种排序算法,包括冒泡排序、选择排序、插入排序和快速排序等。在实际应用中,应根据不同的场景选择合适的算法来进行排序,以提高程序效率。