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

利用Python函数实现简单的排序算法

发布时间:2023-08-11 11:07:17

排序算法是计算机科学中最基础的算法之一,它的目标是按照一定的顺序重新排列一组数据。常见的排序算法有插入排序、冒泡排序、选择排序、归并排序、快速排序等。

下面我将使用Python函数实现三种简单的排序算法:插入排序、冒泡排序和选择排序。

首先是插入排序。插入排序的思想是将数组中的元素逐个插入已排序好的数组中,初始时已排序数组只有一个元素。代码实现如下:

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
    return arr

接下来是冒泡排序。冒泡排序的思想是从数组的 个元素开始,依次比较相邻的两个元素,如果顺序错误就交换它们的位置,依次类推。代码实现如下:

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]
    return arr

最后是选择排序。选择排序的思想是从数组中选择最小的元素放到已排序数组的末尾,然后再从未排序数组中选择最小的元素放到已排序数组的末尾,以此类推。代码实现如下:

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[min_idx] = arr[min_idx], arr[i]
    return arr

使用这些排序算法,我们可以对一个无序的数组进行排序。例如,对数组 [5, 3, 8, 4, 2] 进行排序:

arr = [5, 3, 8, 4, 2]
sorted_arr1 = insertion_sort(arr)
sorted_arr2 = bubble_sort(arr)
sorted_arr3 = selection_sort(arr)
print(sorted_arr1)  # 输出 [2, 3, 4, 5, 8]
print(sorted_arr2)  # 输出 [2, 3, 4, 5, 8]
print(sorted_arr3)  # 输出 [2, 3, 4, 5, 8]

通过以上代码,我们可以看到插入排序、冒泡排序和选择排序都可以成功对数组进行排序。

这就是使用Python函数实现简单排序算法的方法。当然,这只是简单的排序算法,对于大规模的数据排序可能效率较低。如果需要排序大规模数据,可以使用更高效的排序算法,如归并排序、快速排序、堆排序等。