zoukankan      html  css  js  c++  java
  • 算法构成 时间复杂度

    总结:

    1、

    一个算法由控制结构(顺序、分支和循环3种)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。

    2、

    N*N矩阵乘法算法

    时间复杂度T(n)=O(n^3)

    for(i=1;i<=n;i++)
      for(j=1;j<=n;j++)
        c[i][j]=0
        for(k=1;k<=n;k++)
          c[i][j]+=a[i][k]*b[k][j]

    O(f(n))形式定义:

    若f(n)是正整数n的一个函数,则O(f(n))表示

    存在一个正常数M,使得当n>=n0时都满足O(f(n)<=M*f(n)

    3、

    常量阶 线性阶 平方阶 O(1) O(n) O(n^2)

    对数阶指数阶 O(logN) O(2^n)

     

    时间复杂度计算

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9

    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/two-sum 

    class Solution:
        def twoSum(self, nums, target):
            c = len(nums)
            for i in range(0, c, 1):
                if target - nums[i] in nums[i + 1:]:
                    return [i, i + 1 + nums[i + 1:].index(target - nums[i])]



    class Solution:
    def twoSum(self, nums, target):
    hashmap = {}
    for index, num in enumerate(nums):
    another_num = target - num
    if another_num in hashmap:
    return [index, hashmap[another_num]]
    hashmap[num] = index
    return None


    O(n^2)

    O(n)
    
    
    
  • 相关阅读:
    redis 数据库总结
    drf 序列化类总结
    drf 视图类经典总结
    celery 简介
    虚拟环境搭建pip换源
    git 与 svn,简介差别
    redis 数据库简介
    auth 模块
    python的注释与用户交互 基本数据类型
    python入门
  • 原文地址:https://www.cnblogs.com/rsapaper/p/6234651.html
Copyright © 2011-2022 走看看