首页 > 编程语言 >算法复杂度、python混编

算法复杂度、python混编

时间:2023-02-02 16:48:17浏览次数:61  
标签:python 复杂度 dll 混编 算法 go 动态链接库

1 算法复杂度

https://zhuanlan.zhihu.com/p/50479555

# 数据结构和算法是程序的基石
    -所有的数据类型其实就是一种数据结构  # 数据的组织形式
    -写的程序逻辑就是算法
    
# 算法:
    -是指用来操作数据、解决程序问题的一组方法
    -对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,
     但在过程中消耗的资源(空间复杂度)和时间(时间复杂度)却会有很大的区别
    
    -时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。
	-空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述
    
    -大O符号表示法     T(n) = O(f(n))
      常数阶    O(1)
      对数阶    O(logN)
      线性阶    O(n)
      线性对数阶 O(nlogN)
      平方阶    O(n²)
      立方阶    O(n³)
      K次方阶   O(n^k)
      指数阶    (2^n)
        
        
# Python:常用的排序算法  # 冒泡、快排、希尔  背一下
  https://www.cnblogs.com/wuxinyan/p/8615127.html

2 python与其他语言混编

# Python和go/java/c语言混编
  指的是python 调用其他语言写好的程序  eg: go和C 编译完的动态链接库文件、Java的jar包

# 1 动态链接库(dll、so文件)
    是一种不可执行的二进制程序文件,它允许程序共享执行特殊任务所必需的代码和其他资源
    # 简单讲:是一个包含函数和数据的模块,它可以被其他模块(应用程序exe 或 DLL)使用
    
    Linux下的动态库以.so 结尾
    Windows下的动态库以.dll结尾
    
    
# 2 go 和 c 编译成可执行文件的区别
    go语言编译程序,把所有代码都编译到一个可执行文件
    
    c语言编译程序,支持主程序编译到一个可执行文件
     其他资源代码可编译到动态链接库中,主程序来调用即可  # 节约主程序(可执行文件)的大小
    
    
# 3 Python调用动态链接库(so、dll)
    
    from ctypes import *
    # ----------以下四种加载DLL方式皆可—————————
    # pDLL = WinDLL("./myTest.dll")
    # pDll = windll.LoadLibrary("./myTest.dll")
    # pDll = cdll.LoadLibrary("./myTest.dll")
    pDll = CDLL("./myTest.dll")

    # 调用动态链接库函数
    res = pDll.sum(1,2)
    # 打印返回结果
    print(res)
    
    
# 4 Python调用java的jar包
    百度
    
# 5 go 写的代码编译成 动态链接库文件
    https://zhuanlan.zhihu.com/p/355538331
    
    
# 6 什么场景使用  
    安全性 和 执行速度高的代码 可用其他语言编写,编译so文件,python再调用
    
  # eg:
    -生成支付连接的方法
     因为python开源,没有加密一说。  # so文件 可调试,不可反编译
    
    -雪花算法
     用go编写so文件,python调用

标签:python,复杂度,dll,混编,算法,go,动态链接库
From: https://www.cnblogs.com/Edmondhui/p/17086460.html

相关文章

  • Python内置函数详解-总结篇
     一直以来都是现查现学Python的相关内置函数,想看看全部的汇总版本,最近还真发现有大佬早已把相关的内置函数全部汇总完毕了。博主十月狐狸将Python3.5版本中的68......
  • PYTHON函数
    PYTHON函数函数是指组织好的,可重复使用的,用来实现特定功能的代码段语法:​ def函数名(传入参数):​ 函数体​ return返回值参数可以省略,返回值可以省略(......
  • python内置函数open()
    介绍open()函数用于打开文件并返回其文件对象。open()函数的语法格式:open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,......
  • Python 根据经纬度坐标计算位置
    示例代码 frommathimportradians,cos,sin,asin,sqrt#公式计算两点间距离(m)defgeodistance(lng1,lat1,lng2,lat2):#lng1,lat1,lng2,lat2=(116.37......
  • Python字符串如何转为bytes对象
    1,字符串转换byte字节指的是计算机上面用来表示存储值的一种计量单位,但是它放在python里面的话就是一种数据类型,这个数据类型的名称为bytes。可以将其看做是二进制字节格......
  • Python中time库的使用(日期时间)
    time库是python中处理时间的标准库。计算机时间的表达:time()、ctime()、gmtime();提供获取系统时间并格式化输出功能:strftime()、strptime()提供系统级精确计......
  • 2、Python基础(函数)
    #格式化代码快捷键Ctrl+Alt+L#函数的定义​deff1():print("你好")​​#函数的调用f1()​​#函数的参数#使用函数计算1+2的值​d......
  • python入门之元组(tuple)
    """元组tuple1.由一系列变量组成的不可变系列容器2.不可变是指一但创建,不可以再添加/删除/修改元素3.列表用[],元组用()4.列表和元......
  • 单一资产VaR风险--基于python
    数据源:使用 AKShare包。它是一个免费、开源的Python财经数据接口包。网址https://www.akshare.xyz/index.html一、获取数据:计算日收益率:importpandasaspdimport......
  • 单一资产VBA风险--基于python处理
    数据来源:AKShare包;介绍:https://www.akshare.xyz/index.html;它是一个免费、开源的Python财经数据接口包。一、计算日收益率;importpandasaspdimportnumpyasnpim......