杂学第七篇:python实现十大经典的排序算法(最简便的实现+自身理解)之选择排序

公示:相关概念解释及动图来源于https://www.cnblogs.com/onepixel/articles/7674659.html

选择排序的原理很简单,简单到它是最容易想到的排序算法:就是从头开始,每次遍历数组,都把最大或者最小的那个数放在没排序的第一位。但是有些细节需要理清楚,要不然也会造成理解困难。

细节:选择排序是不占额外的空间。怎么做到的呢?它把数组a的空间从前往后,分为有序区和无序区。从i= 0开始遍历数组(即数组的第一个),这时全是无序区,有序区长度为0,遍历第一遍,找到最大或最小的数,跟a[i]交换即可,再把i+1,执行下一次遍历,找到之后再跟a[i]交换。此时,i前面的区域就是有序区,i以及其后面的区域就是无序区。

附上简单明了的实现:

import sys
A = [64, 25, 12, 22, 11]
# 循环数组
for i in range(len(A)):
    min_idx = i
    for j in range(i + 1, len(A)):
        if A[min_idx] > A[j]:
            min_idx = j

    A[i], A[min_idx] = A[min_idx], A[i]

print("排序后的数组:",A)
发布了65 篇原创文章 · 获赞 31 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/zhangtao0417/article/details/89713203