之前我们了解过了python中的冒泡排序,今天学习一个新的排序方式,今天给大家分享一下Python怎么用循环实现选择排序?选择排序的实现方法如何编写?的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧 。
文章插图
【Python怎么用循环实现选择排序?选择排序的实现方法如何编写?】首先我们需要来了解一下,什么是选择排序 。选择排序的概念就是按照元素的大小,进行高低排序,首先得找出在一个序列中最大或者是一个最小的数,这要根据你自己的需求来决定,是按升序还是降序排列,然后在对其他剩余的元素进行同样的寻找排列,一种重复执行,知道所有的元素排序好为止 。举个例子:
实现步骤:
使用选择排序一共分成两步 。
第一步:将凌乱的列表元素量量比较,找出其中的最大值,然后将找出来的这个最大值放在整个序列的最后面,意味着这个最大值会直接跟这个序列中最末尾的一个值,直接进行交换了 。示例代码如下:
def select_sort(alist): max_index = 0 最大值元素的下标,一开始假设下标为0的元素为最大值 for i in range(len(alist) - 1): 循环控制两两比较的次数 如果在比较的过程中发现,下标为max_index不是最大值,那么就改变max_index if alist[max_index] < alist[i + 1]: max_index = i + 1 循环结束后max_index就一定是最大值的下标,并且把该数和最后一个值做交换 alist[len(alist) - 1], alist[max_index] = alist[max_index], alist[len(alist) - 1] return alistalist = [3, 5, 9, 2, 1, 7, 8, 6, 4]print(select_sort(alist))运行结果:
[3, 5, 4, 2, 1, 7, 8, 6, 9]第二步:对第一步操作直接进行n-1次 。
示例代码如下:
def select_sort(alist): for j in range(len(alist) - 1): 外层循环递增n-1次 max_index = 0 最大值元素的下标,一开始假设下标为0的元素为最大值 for i in range(len(alist) - 1 - j): 内层循环递减,循环控制两两比较的次数 如果在比较的过程中发现,下标为max_index不是最大值,那么就改变max_index if alist[max_index] < alist[i + 1]: max_index = i + 1 循环结束后max_index就一定是最大值的下标,并且把该数和最后一个值做交换 alist[len(alist) - 1 - j], alist[max_index] = alist[max_index], alist[len(alist) - 1 - j] return alist alist = [3, 5, 9, 2, 1, 7, 8, 6, 4]print(select_sort(alist))到此这篇关于Python怎么用循环实现选择排序?选择排序的实现方法如何编写?的文章就介绍到这了,更多相关python实现排序算法内容可以继续关注学习 。
推荐阅读
- 如何快速一次性卸载所有python包呢?快速卸载python包的方法有哪些?
- Python学数据分析哪本书比较好?Python数据分析看什么书
- pycharm怎么设置代码运行环境?Pycharm配置Python环境技巧
- python删除文件的方法有哪些?python删除文件的两种实现方法
- Tkinter中控件的常用属性有哪些?Tkinter控件常用属性讲解
- PyCharm文件怎么打包程序成exe?PyCharm打包exe可执行文件的技巧
- Python如何循环定义多个变量?Python中的exec函数如何循环定义变量?
- 在Python中如何使用多次事件循环?python程序中使用多次事件循环的方法有哪些?
- PyCharm运行提示No Python Interpreter错误怎么办?如何解决pycharm运行错误?
- python可以访问外围作用域中的变量吗?Python如何访问外围作用域中的变量?