算法思想:
以从小到大举例,
从所有数据中找到最小的数放置在元素的第一个位置,再从第二项开始,待排序的区域选择一个最小的数据放到第二个位置,依次类推,直到排序完成
具体看程序代码,
最简版:
def Select_Sort(li):
new_list = [] ##设置一个恐列表,用来存放最小值
for i in range(len(li)):#遍历原始列表
min_val = min(li)##选择出原始列表的最小值
new_list.append(min_val)
li.remove(min_val)
return new_list
然而在这个程序中存在很多问题,比如,需要重新开辟一块数组空间,如果数据量很大的时候,是一笔不小的内存开销。
改进版本:
利用原有的空间进行排序:
def Select_Sort1(li):
for i in range(len(li)-1):
min_val = i
for j in range(i+1,len(li)):
if li[j]<li[min_val]:
min_val = j
if min_val!=i:
li[i],li[min_val] = li[min_val],li[i]
return li
li = [3,4,5,6,7,1,2]
print(Select_Sort1(li))