zoukankan      html  css  js  c++  java
  • 算法相关---->准备知识

    递归的复习

    def func1(x):
        if x > 0:
            func1(x - 1)
            print(x)
    func1(5)    #结果 以此打印1 2 3 4 5
    
    
    def func2(x):
        if x > 0:
            print(x)
            func2(x - 1)
    func2(5)    #结果 以此打印5 4 3 2 1 

    两个特点:

      1.调用自身

      2.结束条件

    两个重要单位:

    时间复杂度:

    算法的时间复杂度是一个函数,它定量描述了该算法的运行时间,时间复杂度常用“O”表述,使用这种方式时,时间复杂度可被称为是渐近的,它考察当输入值大小趋近无穷时的情况;

      用来估算算法运行时间的一个式子(单位)

      一般来说,时间复杂度高的算法比复杂度低的算法慢

      常见的时间复杂度高低排序:O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n2logn)<O(n3)

    print('Hello world')  # O(1)
     
    
    # O(1)
    print('Hello World')
    print('Hello Python')
    print('Hello Algorithm')
     
    
    for i in range(n):  # O(n)
        print('Hello world')
     
    
    for i in range(n):  # O(n^2)
        for j in range(n):
            print('Hello world')
     
    
    for i in range(n):  # O(n^2)
        print('Hello World')
        for j in range(n):
            print('Hello World')
     
     
    for i in range(n):  # O(n^2)
        for j in range(i):
            print('Hello World')
     
     
    for i in range(n):
        for j in range(n):
            for k in range(n):
                print('Hello World')  # O(n^3)

    空间复杂度:

      用来评估算法内存占用大小的一个式子

    “空间换时间”

  • 相关阅读:
    第四篇博客
    第三篇博客
    第二篇博客
    DS博客作业04--图
    DS博客作业03--树
    DS博客作业02--栈和队列
    C博客作业05--指针
    C博客作业04-数组
    C语言博客作业03--函数
    C语言博客作业02--循环结构
  • 原文地址:https://www.cnblogs.com/Utopia-Clint/p/10831330.html
Copyright © 2011-2022 走看看