ghpython_选择排序
Posted 颜犀设
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ghpython_选择排序相关的知识,希望对你有一定的参考价值。
今天咱们来学习另一个列表排序算法,选择排序。
所谓选择排序,通过列表元素的索引值标记,从未排序列表中找出最大或者最小元素,放置到已排序列表的首位,然后再从剩下的未排序列表中继续查找最大或最小元素,依次放置到未排序列表的末尾,如此反复,直到整个列表排序完毕。
这里的已排序列表和未排序列表并不是两个单独的列表,可以理解成一个列表分成两段,一段是已经排序好的,另一段是需要从中依次提取最大或最小值的列表。
#选择排序
"""
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
重复第二步,直到所有元素均排序完毕。
"""
import random as rd
lst=rd.sample(xrange(-x,x),int(num))
print("随机生成的原始列表为:{0}".format(lst))
def selection_sort(lst):
length=len(lst)
#外层for循环相当于标记列表需要选择排序的位置
for i in range(length-1):
min_index=i #用来记录最小元素的索引值,每次假设是未排序列表的第一个
#遍历从i开始往后的每一个元素,如果发现比记录的最小值还小的值
#则将最小值索引值进行重新赋值
for j in range(i+1,length):
if lst[j]<lst[min_index]:
min_index=j
#如果发生了最小值索引的重新赋值,说明找到了更小的值,则将两个值进行互换
if i!=min_index:
lst[i],lst[min_index]=lst[min_index],lst[i]
return lst
print("选择排序后的列表为:{0}".format(selection_sort(lst)))
欢迎关注「颜犀设」知乎专栏和知识星球。
以上是关于ghpython_选择排序的主要内容,如果未能解决你的问题,请参考以下文章
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段