快捷搜索:  汽车  科技

python简单的排序算法(Python数据结构与算法)

python简单的排序算法(Python数据结构与算法)其实到第3次循环我们已经得到了排序的最终结果,但是选择排序还是会继续比较2次,只是这2次不会换任何数据。第3次循环结果:具体的图解如下,假设我们的列表元素为[8 0 4 3 2 1],那么它会循环n-1次,也就是5次,示例如下:第1次循环结果:第2次循环结果:

Python数据结构与算法(13)---选择排序 24/100 发布文章 liyuanjinglyj 未选择任何文件

python简单的排序算法(Python数据结构与算法)(1)

选择排序

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

选择排序原理

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

1.外层开启0到n-1的循环2.每轮循环记住最小值的下标,循环完成后,将值放在最前面3.接着继续循环,标记最小值的下标,最后把最小值放到当前循环开始的位置,依次类推。4.直到n-1论,结束所有最小值的选择。

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

第1次循环结果:

python简单的排序算法(Python数据结构与算法)(2)

第2次循环结果:

python简单的排序算法(Python数据结构与算法)(3)

第3次循环结果:

python简单的排序算法(Python数据结构与算法)(4)

其实到第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)

运行之后,效果如下:

python简单的排序算法(Python数据结构与算法)(5)

猜您喜欢: