快排的时间复杂度$O(n*log(n))$,空间复杂度$O(1)$
一、代码
1 |
|
快排的时间复杂度$O(n*log(n))$,空间复杂度$O(1)$
1 | #include <iostream> |
bit数组(位数组)是一个保存大规模对象(通常以万计)状态的有力工具,本文采用内置的bytearray来实现一个轻量级的bit数组,当然你也可以选择使用已发布的bitarray(使用pip进行安装即可),该组件采用c语言编写,功能齐全、性能良好,值得推荐。
既然已经有了类似的工具,为啥还要重复造轮子?
- 为了使项目尽可能少的依赖其他外部组件,使项目轻量化
- 外部组件通常是不可控的,不利于系统结构的优化调整
- 世上只有两种程序员,一种是造过轮子的,另一种是没造过轮子的
1 | class bitarray(): |
通常,数据库是持久化的最佳方案,几乎每个稍微大一点的系统都会用到数据库,市面上存在各种各样的数据库系统,本文采用一种最常用的数据库系统——MySql。
访问数据库的方式大体上可以分为两种,一种是直接(或间接)基于数据库驱动的类SQL的方式,另外一种在数据库驱动之上更高抽象的ORM方式。pymysql
是采用Python语言编写的MySql数据库驱动,其优点是安装便捷(可以查看源码哦~),缺点是速度没有那么快,但也基本能满足日常需求(对于性能要求比较高的场景,可考虑mysqldb)。sqlalchemy
是高层次的ORM框架,支持多种数据库和多种数据库驱动。sqlacodegen
可以根据已有的数据库生成sqlalchemy的模型文件,避免手工同步数据库和模型。
本文简单介绍pymysql+sqlalchemy+sqlacodegen的联合使用。
more >>1 | #include <llvm/IR/Module.h> |
1 | int a = 1024; |
1 | //申请栈空间,并返回对应的指针 |
1 | define i32 @main() { |
所谓具体化,就是使用具体的代码替换模板;而实例化,就是根据模板创建代码
- 显示具体化,从概念上看,具体化只有显示具体化这一种,语法
template<> [返回值类型][函数名]([参数列表]);
- 显示实例化,语法
template [返回值类型][函数名]([参数列表]);
- 隐式实例化,由编译器自动推导出来的
- 模板的声明和实现分离时,要注意进行显示实例化
1 | #include <iostream> |
1 | // main.cu |
1 | #ifndef CUDA_MAT_MAT_HPP |
本文的主要目的是学习和研究如何制作一个面向移动端的、高效的深度学习推理引擎,面向有一定深度学习基础知识的用户。
本文主要针对ARMv7-A
架构,编译工具链为NDK19
,使用VSCode
进行开发,主要语言为C
和ARM
,测试设备为小米10
。
1 | .text |
1 | export AS=$NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-as |
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true