python排序算法之选择排序如何实现
更新时间:2023-10-03Python选择排序算法的实现
选择排序是一种简单而直观的排序算法。它的基本思想是在未排序的元素中选择最小(或最大)元素,将它放到已排序的末尾,然后不断重复这个过程,直到所有元素都已排序。在这篇文章中,我们将介绍选择排序算法的实现。
算法实现
选择排序算法的实现非常简单。算法由两个嵌套的循环组成,它们将输入列表分成已排序和未排序两部分。在每次迭代中,算法从未排序的部分选择最小(或最大)元素,并将它交换到已排序的部分的末尾。
第一步:定义函数
首先,我们要定义一个函数,它将一个未排序的列表作为输入,并返回一个已排序的列表。在这个函数中,我们将使用嵌套的循环来实现选择排序算法。
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)。它的优点是实现简单,缺点是在处理大规模数据时效率较低。在实际应用中,我们通常使用快速排序、归并排序等更高效的排序算法。