• 基础知识复习,查漏1


    continue

    中断此次循环,进行下一次循环

    有时候用法与else一样,但推荐用continue

    break

    终止当前循环

    数字的函数处理

    import math

    math.floor(2.5)

    2

    math.ceil(2.5)

    3

    math.round()

    4舍6入5取偶

    pow(x,y)等于x**y

    列表list,链表,queue(队列),stack(栈)的差异:

    动态语言:赋值即定义

    强语言,类型强制转化,1+字符串

    算法优化:

    利用标签提升效率,利用互斥条件

    命名元组namedtuple:

    利用元组程封装类更加轻巧

    冒泡算法总结:

    • 冒泡法需要数据一轮轮比较
    • 可以设定一个标记判断此轮是否有数据发生交换,如果没有,可以结束排序,如果发生交换,将继续下一轮排序
    • 最差的排序情况是,初始排序与目标顺序完全相反,遍历次数1,.....n-1和n(n-1)/2
    • 最好的排序情况是,初始顺序与目标顺序完全相同,遍历次数n-1
    • 时间复杂度O(n²)

     

    list_1 = [2,3,5,1,4,7]
    count = 0
    count_s = 0
    
    for m in range(len(list_1)):
        tag = False
        for i in range(len(list_1)-m-1):
            count += 1
            if list_1[i] > list_1[i+1]:
                list_1[i],list_1[i+1]=list_1[i+1],list_1[i]
                tag = True   #如果此处没有发生数据交换,则直接进行下一轮,提升效率
                count_s += 1
        if not tag:
            break
    
    print(list_1)
    print(count_s)
    print(count)
  • 相关阅读:
    Redis 查看、删除keys
    gitlab 备份和恢复
    gitlab的搭建
    certbot 域名续期及证书查看
    晴天(周杰伦)
    SSH Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
    jenkins miaration section 1
    jenkins 忘记管理员密码
    Yangk's-树状数组 模板
    codeforces-977F-Consecutive Subsequence【动态规划】
  • 原文地址:https://www.cnblogs.com/zhaijihai/p/10298092.html
Copyright © 2020-2023  润新知