复杂度分析
复杂度分析我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢?这里就要用到我们今天要讲的内容:时间、空间复杂度分析。其实,只要讲到数据结构与算法,就一定离不开时间、空间复杂度分析。而且,我个人认为,复杂度分析是整个算法学习的精髓,只要掌握了它,数据结构和算法的内容基本上就掌握了一半。复杂度分析实在太重要了,因此我准备用两节内容来讲。希望你学完这个内容之后,无论在任何场景下,面对任何代码的复杂度分析,你都能做到“庖丁解牛”般游刃有余。 为什么需要复杂度分析?你可能会有些疑惑,我把代码跑一遍,通过统计、监控,就能得到算法执行的时间和占用的内存大小。为什么还要做时间、空间复杂度分析呢?这种分析方法能比我实实在在跑一遍得到的数据更准确吗? 首先,我可以肯定地说,你这种评估算法执行效率的方法是正确的。很多数据结构和算法书籍还给这种方法起了一个名字,叫事后统计法。但是,这种统计方法有非常大的局限性。 测试结果非常依赖测试环境 测试环境中硬件的不同会...
java 基础
Java 基础核心知识点总结一、Java 概述1.1 什么是JavaJava 是一种面向对象、跨平台的编程语言,由 Sun Microsystems(后被 Oracle 收购)开发,核心特点: 跨平台:通过 JVM(Java 虚拟机)实现“一次编写,到处运行” 面向对象:封装、继承、多态三大核心特性 安全性:无指针操作,自动内存管理(垃圾回收) 简单性:舍弃 C++ 复杂特性(如指针、多重继承) 1.2 Java 运行机制 编写 .java 源文件 通过 javac 命令编译为 .class 字节码文件 通过 java 命令由 JVM 解释执行字节码 1.3 环境搭建(1)下载安装 JDK 官网:Oracle JDK 或 OpenJDK 配置环境变量: JAVA_HOME:JDK 安装根目录 PATH:添加 %JAVA_HOME%\bin(Windows)/ $JAVA_HOME/bin(Linux/Mac) CLASSPATH:可选,JDK 1.5+ 可省略 (2)验证安装# 验证 JDK 版本java -versionjavac -versio...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post$ hexo new "My New Post" More info: Writing Run server$ hexo server More info: Server Generate static files$ hexo generate More info: Generating Deploy to remote sites$ hexo deploy More info: Deployment