选择排序算法(python实现)

算法原理:

选择排序是从未排序的数据中选出最小的一个元素,顺序放在已经排好序的数列最后。
设有n个数,可经过n-1趟选择排序得到有序结果。首先将数据看作1~n的无序区,有序区为
空,然后从无序区中选择最小的数i,将它与无序区的第一个数进行交换,使他与后面的数
构成新的有序区和无序区。再次从无序区选出最小的数x,将它放在i的后面,直到无序区
空为止。
如9 5 3 0 1 4 8 2 6 7
第一次:选出最小值0,将0和有序区第一个位置的9互换得(0 有序区)(5 3 9 1  4 8 2 6 7无序区
第二次:选出后面九个数的最小值1,将1和有序区第一个位置的5互换得(0  1有序区)(3 9 5 4 8 2 6 7无序区)
。。。。。

代码如下:
# -*- coding: utf-8 -*-
"""
Created on Tue Jul  4 10:32:43 2017

@author: wzqya

功能:选择排序
算法原理:
选择无序区最小的数,然后排到最后,直至结束
如:9,5,8,7,2,6
1 9,5,8,7,6,2
"""
data_list=[]
num_all=0
def data_in_func():
    #作用:输入数据
    data_list=[]
    num_all=input('请要输入的总数据:')
    if num_all.isdigit():
        num_all=int(num_all)
    for i in range(num_all):
        dat=input('请要输入的总数据:')
        if dat.isdigit():
            dat=int(dat)
            data_list.append(dat)
    return data_list,num_all
def search_func():
    for i in range(num_all):
        k=i
        for j in range(i+1,num_all):#找到
            if data_list[k]>data_list[j]:
                k=j#k存最小的数的序号
        if(k!=i):
            data_list[k],data_list[i]=data_list[i],data_list[k]#交换数据
        
data_list,num_all=data_in_func()
search_func()
print(data_list)


















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值