010.【排序算法】选择排序法

1. 选择排序法

选择排序法就是反复从未排序的数列中取出最小(或最大)的数据,将其存放在序列的起始位置,然后,再从未排序的元素中继续寻找最小(或最大)的数据,存放在已排序序列的末尾,以此类推。最后的结果即为已经排序好的数列。选择排序法最后的结果有两种形式,即递增数列和递减数列。

2. 使用选择排序法

  • 递增排序
def choose(data):                                     #自定义一个选择排序法函数
    for i in range(4):                                #遍历新数据
        for j in range(i+1,5):                        #遍历新数据
            if data[j]<data[i]:                       #如果数据小于原来的数据
                #print(i,j,data[j],data[i])
                data[i],data[j]=data[j],data[i]       #需要交换位置
        print('第 %d 次排序之后的结果是'%(i+1),end='')
        for j in range(5):                            #遍历每次排序的结果
            print('%4d'%data[j],end='')               #输出结果
        print()                                       #输出空行


# data=[56,18,49,84,72]                                  #创建数列并初始化
data=[100,80,60,40,20]
print("原始数据为:")
for i in range(5):                                     #遍历原有数据
    print('%4d'%data[i],end='')                        #输出结果
print('\n---------------------------')                 #输出分界符
choose(data)                                           #调用选择排序法函数
print('\n---------------------------')                 #输出分界符
print("排序之后的数据为:")
for i in range(5):                                     #遍历排序好的新数列的数据
    print('%4d'%data[i],end='')                        #输出结果
print('')                                              #输出空行

  • 递减排序
def choose(data):                                   #自定义一个选择排序法函数
    for i in range(4):                              #遍历新数据
        for j in range(i+1,5):                      #遍历新数据
            if data[j]>data[i]:                     #如果数据大于原来的数据
                data[i],data[j]=data[j],data[i]     #需要交换位置
        print('第 %d 次排序之后的结果是'%(i+1),end='')
        for j in range(5):                          #遍历每次排序的结果
            print('%6d'%data[j],end='')             #输出结果
        print()                                     #输出空行


data=[420,434,421,539,555]                          #创建数列并初始化
print("各个学生成绩如下:")
for i in range(5):                                  #遍历原有数据
    print('%6d'%data[i],end='')                     #输出结果
print('\n---------------------------')              #输出分界符
choose(data)                                        #调用选择排序法函数
print('\n---------------------------')              #输出分界符
print("从高到低排名之后的成绩如下:")
for i in range(5):                                  #遍历排序好的新数列的数据
    print('%6d'%data[i],end='')                     #输出结果
print('')                                           #输出空行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值