• Exercise:函数应用于排序


    exercise1: 用函数实现冒泡排序

    def payxu(list):
    for i in range(1,len (list)):
    for j in range(0,len(list)-i):
    if list[j]>list[j+1]:
    tmp=list[j]
    list[j]=list[j+1]
    list[j+1]=tmp

    return list


    list =[5,6,9,10,7,7]
    print payxu(list)

    issue 1:为何用range去遍历list长度时不能从0开始?

    exercise2:用函数实现快速排序(递归)

    def payxu(total=[ ]):
    if len(total)<=1:
    return total
    key=total[0]
    total_l=[ ]
    total_r=[ ]
    total_m=[ ]
    for i in total:
    #for i in range(1, len(total)) 这时i是索引
    #for i in total 这时i是total里面的元素而不是索引
    if i<key:
    total_l.append(i)
    elif i>key:
    total_r.append(i)
    else:
    total_m.append(i)

    total_l=payxu(total_l)
    total_r=payxu(total_r)
    return total_l+total_m+total_r


    total =[5,6,9,10,7,7,50,76]
    print payxu(total)

    issue1:起始循环时应做一个空值判断,不然当执行至total[] 时,循环会超出索引范围,当total=1时,也无需执行循环语句,直接返回total值即可,故加了

    if len(total)<=1:
    return total

    若去掉这一部分,会报IndexError: list index out of range

    issue 2:

    不同的循环条件所定义的i值表示的含义不同:

    #for i in range(1, len(total)) 这时i是索引
    #for i in total 这时i是total里面的元素而不是索引

    今天结束了函数的学习,晚上回去完成此2个练习,并贴上练习成果。

  • 相关阅读:
    fn project 试用之后的几个问题的解答
    fn project 扩展
    fn project 生产环境使用
    fn project 对象模型
    fn project AWS Lambda 格式 functions
    fn project 打包Function
    fn project Function files 说明
    fn project hot functions 说明
    fn project k8s 集成
    fn project 私有镜像发布
  • 原文地址:https://www.cnblogs.com/janicce-zhong/p/5125173.html
Copyright © 2020-2023  润新知