c语言编程笔录

首页 >   > 笔记大全

笔记大全

python排序算法之选择排序如何实现

更新时间:2023-10-03

Python选择排序算法的实现

选择排序是一种简单而直观的排序算法。它的基本思想是在未排序的元素中选择最小(或最大)元素,将它放到已排序的末尾,然后不断重复这个过程,直到所有元素都已排序。在这篇文章中,我们将介绍选择排序算法的实现。

算法实现

选择排序算法的实现非常简单。算法由两个嵌套的循环组成,它们将输入列表分成已排序和未排序两部分。在每次迭代中,算法从未排序的部分选择最小(或最大)元素,并将它交换到已排序的部分的末尾。

第一步:定义函数

首先,我们要定义一个函数,它将一个未排序的列表作为输入,并返回一个已排序的列表。在这个函数中,我们将使用嵌套的循环来实现选择排序算法。

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
    

第二步:测试函数

接下来,我们要编写一个测试函数来验证选择排序算法的正确性。我们用一些随机生成的数字来测试函数,并将排序前后的列表输出到控制台。

import random

def test_selection_sort():
    arr=[random.randint(1, 100) for _ in range(10)]
    print('排序前:{}'.format(arr))
    arr_sorted=selection_sort(arr)
    print('排序后:{}'.format(arr_sorted))

if __name__=='__main__':
    test_selection_sort()
    

第三步:运行程序

最后,我们要运行程序,测试选择排序算法的性能和正确性。以下是输出结果:

排序前:[27, 59, 68, 24, 62, 49, 56, 51, 71, 58]
排序后:[24, 27, 49, 51, 56, 58, 59, 62, 68, 71]
    

总结

选择排序算法是一种简单而有效的排序算法,它的时间复杂度为O(n^2)。它的优点是实现简单,缺点是在处理大规模数据时效率较低。在实际应用中,我们通常使用快速排序、归并排序等更高效的排序算法。