算法图解笔记--排序算法

分别定义最小值函数和排序函数

'''先定义一个找最小值的函数'''
def findmin(list):
    smallvalue=list[0]#储存最小值(暂定为第一个元素)
    smallvalue_index=0#储存最小值索引(暂定为第一个元素的索引)
    for i in range(1,len(list)):#遍历从1到列表元素个数的列表
        if list[i]<smallvalue:#若暂时的最小值大于第i位元素
            smallvalue=list[i]#则分别将第i位的值和索引由暂定最小值取代
            smallvalue_index=i
    return smallvalue_index#遍历完成后暂定最小值即为最终最小值(返回值为最小值的索引而不是值)
print(findmin([8,6,9,10]))#测试结果
def sort(list):#定义从小到大排序函数
    newlist=[]#创造一个空列表用于存储过程及最终排序完成的列表
    for i in range(len(list)):#遍历次数为列表元素的个数
        min=findmin(list)#调用最小值函数,将最小值的索引赋给min
        newlist.append(list.pop(min))#list.pop方法是给定一个index删除对应的vaule,并返回被删除的value,由.appen方法在newlist列表末尾依次加入最小值
    return newlist
print(sort([1,9,7,55,12,10]))##验证无误

在newlist.append(list.pop(min))处纠结了很久,因为没有很牢固的记忆pop的用法,以为返回值是删掉值之后的列表,警示自己和提醒他人不要犯这样的错误

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值