Python数据结构与算法(13)---选择排序

简介: Python数据结构与算法(13)---选择排序

选择排序


选择排序,英文称为Selection Sort,它是另外一种简单的排序算法。在数据集合中,通过一轮的新循环找到最小值,把它放到第一个位置,然后在剩余的数据中再找最小值,放到第二个位置,直到所有排序完成。


选择排序原理

假设,Python有一个n个元素的列表。那么实现步骤分为3步骤:


1.外层开启0到n-1的循环

2.每轮循环记住最小值的下标,循环完成后,将值放在最前面

3.接着继续循环,标记最小值的下标,最后把最小值放到当前循环开始的位置,依次类推。

4.直到n-1论,结束所有最小值的选择。


具体的图解如下,假设我们的列表元素为[8,0,4,3,2,1],那么它会循环n-1次,也就是5次,示例如下:


第1次循环结果:

第2次循环结果:


第3次循环结果:


其实到第3次循环我们已经得到了排序的最终结果,但是选择排序还是会继续比较2次,只是这2次不会换任何数据。


Python实现选择排序

既然,我们已经讲解了原理,也通过图例完美阐述了选择排序的步骤。下面,我们就来通过Python代码来实现选择排序算法,代码如下:

s_list = [8, 0, 4, 3, 2, 1]
print("排序之前的结果:", s_list)
for i in range(0, len(s_list)):
    x = i
    for j in range(i, len(s_list) - 1):
        if s_list[x] > s_list[j + 1]:
            x = j + 1
    temp = s_list[x]
    s_list[x] = s_list[i]
    s_list[i] = temp
print("排序之后的结果:", s_list)


运行之后,效果如下:

相关文章
|
2天前
|
搜索推荐 Java Go
深入了解选择排序算法
深入了解选择排序算法
9 4
|
3天前
|
存储 算法 Python
火箭般的提升!学会Python并查集,让你的算法能力飞跃新高度!
火箭般的提升!学会Python并查集,让你的算法能力飞跃新高度!
11 1
|
1天前
|
算法 Python
逆袭之路!用 Python 玩转图的 DFS 与 BFS,让数据结构难题无处遁形
在数据结构的广袤领域中,图是一种强大而复杂的结构,而深度优先搜索(DFS)和广度优先搜索(BFS)则是遍历图的两把利剑。Python 以其简洁和强大的特性,为我们提供了实现和运用这两种算法的便捷途径。
13 0
|
1天前
|
存储 算法 搜索推荐
算法进阶之路:Python 归并排序深度剖析,让数据排序变得艺术起来!
算法进阶之路:Python 归并排序深度剖析,让数据排序变得艺术起来!
7 0
|
1天前
|
算法 Python
Python算法编程:冒泡排序、选择排序、快速排序
Python算法编程:冒泡排序、选择排序、快速排序
|
2天前
|
算法 开发者 计算机视觉
燃爆全场!Python并查集:数据结构界的网红,让你的代码炫酷无比!
在编程的世界里,总有一些数据结构以其独特的魅力和高效的性能脱颖而出,成为众多开发者追捧的“网红”。今天,我们要介绍的这位明星,就是Python中的并查集(Union-Find)——它不仅在解决特定问题上大放异彩,更以其优雅的设计和强大的功能,让你的代码炫酷无比,燃爆全场!
9 0
|
2天前
|
程序员 Python 容器
python 中的 collections 模块:常用数据结构和工具详解
python 中的 collections 模块:常用数据结构和工具详解
6 0
|
12天前
|
存储 数据安全/隐私保护 Python
Python常用数据结构—字典
Python常用数据结构—字典
10 0
|
12天前
|
存储 索引 Python
Python编程的常用数据结构—列表
Python编程的常用数据结构—列表
12 0
|
12天前
|
存储 索引 Python
Python编程的常用数据结构—列表 原创
Python编程的常用数据结构—列表 原创
11 0