这篇文章主要介绍如何使用python实现选择排序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
代码流程:首先获取数组长度last,初始遍历时,默认0索引位置的元素最小,因此令first为1,first代表的意思是第一个与默认最小值进行比较的元素的索引(比如在进行第一轮遍历时,肯定是索引为1的元素与索引为0的元素比较,后面每轮的遍历类似推理即可);接着进入while循环,这里以开始比较的元素的索引与数组长度作条件判断,小于则进入遍历,否则终止循环(此内容下文针对示例结果具体讲解);对于内部的for循环,注意其范围:后者小于前者交换位置,否则不交换,这里可以看出后者元素的索引减1即为前者元素的索引,还是拿首次遍历来说,当first为1时,其减1则为0,因此实现了第一个元素与默认为最小的0位置的元素的比较,到了第二次遍历时,first为2,其减1为1,可实现2位置的与1位置的比较大小(此时的1为第二次遍历时的数组的首个元素的索引 ‘0’)。。。。依次类推实现排序,在每次遍历完后可通过打印数组来查看每次的结果。first加1,就是由于每遍历一次,待排序的数组长度减1。下面结合示例结果说说:
结果分析:待排序数组长度为7,则只需遍历6次,前6次确定6个元素,则最后一个元素无需比较。当first为6时,6
[1,2,3,4,5,7,6]中的list[6]与list[6-1]的大小,也就是数值7和6交换位置,此时已经却确定好前6个数的位置,剩下最后一个位置的数,接着打印出第六次结果,然后first加1,此时7
复杂度:选择排序的平均复杂度仍为n**2;最优时间复杂度为n,即原数组为有序数组,遍历第一次时 香港云主机如果未发生交换即可跳出循环,可设定一个变量来记录交换次数详情可参考排序之冒泡排序该文章中的相关做法。
以上是“如何使用python实现选择排序”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注开发云行业资讯频道!
相关推荐: NAR发布全新噬菌体捕获工具Prophage Hunter怎么用
NAR发布全新噬菌体捕获工具Prophage Hunter怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。”NAR.Prophage Hunter5月22日,来自深圳华大生命科…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。