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

用Python编写函数实现数组排序

发布时间:2023-06-06 13:33:29

要实现数组排序,我们需要掌握常用的排序算法,比如冒泡排序、快速排序、插入排序等,本文将以 Python 语言为例,分别介绍这些排序算法的实现。

1. 冒泡排序

冒泡排序是一种比较简单的排序算法,它的基本思想是,从未排序的数列中,依次比较相邻的两个数,如果前面的数大于后面的数,就交换这两个数的位置,经过一轮比较后,最大的数就会跑到数列的末尾,然后对剩余的数列继续重复这个比较交换的过程,直到所有的数都排好序为止。

以下是冒泡排序的 Python 代码实现:

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    return arr

2. 快速排序

快速排序是一种常用的排序算法,它的基本思想是,选择一个基准数,然后将所有小于基准数的数放在它的左边,将所有大于基准数的数放在它的右边,然后分别对左边和右边的数列进行排序,直到所有的数都排好序为止。

以下是快速排序的 Python 代码实现:

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr)//2]
    left, right = [], []
    for num in arr:
        if num < pivot:
            left.append(num)
        elif num > pivot:
            right.append(num)
    return quick_sort(left) + [pivot] + quick_sort(right)

3. 插入排序

插入排序是一种比较简单的排序算法,它的基本思想是,将待排序的数列分为已排序和未排序两部分。每次从未排序部分取出一个数,将其插入到已排序部分的合适位置,使得已排序部分仍然有序。

以下是插入排序的 Python 代码实现:

def insertion_sort(arr):
    for i in range(1, len(arr)):
        j = i
        while j > 0 and arr[j] < arr[j-1]:
            arr[j], arr[j-1] = arr[j-1], arr[j]
            j -= 1
    return arr

以上就是三种常用的排序算法的 Python 代码实现。不同的算法在时间复杂度和空间复杂度上会有所不同,根据不同的需求选择合适的排序算法能够提高代码的执行效率。