分类标签归档:读书笔记

时间与空间复杂度


时间与空间复杂度

复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系
和性能测试相比,复杂度分析有不依赖执行环境、成本低、效率高、易操作、指导性强的特点
复杂度量级,我们可以粗略地分为两类,多项式量级非多项式量级。其中,非多项式量级只有两个:O(2n)和O(n!)
我们把时间复杂度为非多项式量级的算法问题叫作NP(Non-Deterministic Polynomial,非确定多项式)问题
当数据规模n越来越大时,非多项式量级算法的执行时间会急剧增加,求解问题的执行时间会无限增长。所以,非多项式时间复杂度的算法其实是非常低效的算法

Big O notation(大O表示法)

Read more

算法数据结构


学习重点

需要掌握常见的10个数据结构与10个算法:

10个数据结构:

数组(Array)、链表(LinkedList)、栈(Stack)、队列(Queue, 优先队列 PriorityQueue)、散列表(HashTable)、二叉树(tree/Binary Search Tree)、堆、跳表、图(graph)、Trie树;

10个算法:

递归(Recursion)、排序、二分查找、搜索(BST(breadth-first),DST(Depth-first))、哈希算法、贪心算法(Greedy)、分治算法(Divide and Conquer)、回溯算法(backtrace)、动态规划(D

Read more

Java 并发编程 读书笔记


并发编程

三个核心问题

  • 互斥

    • 无锁

      • 不变模式
      • 线程本地存储(不共享变量 Thread Local)
      • CAS
      • Copy-On-Write
      • 原子类
    • 互斥锁

      • synchronized
      • Lock

        • 优化读多写少

          • ReadWriteLock
          • StampedLock
      • 读写锁

  • 协作

    • 信号量(Semaphore)
    • 管程(Monitor)

      • Lock & Condition
      • synchronized
    • CountDownLatch

    • CyclicBarrier
    • Phaser
    • Exchanger
  • 分工

    • Executer 与线程池
    • fork/Join
    • Future

Read more

MySQL 实战45讲 笔记


架构示意图

server 层

  • 连接器

    • 管理连接,权限验证
    • 一个用户成功建立连接后,即使你用管理员账号对这个用户的权限进行了修改,也不会影响已经存在连接的权限,修改完成后,只有再新建连接才会使用新的连接权限。
    • 空闲连接(show processlist; 显示为 Sleep ) 默认 8 小时断开(参数 wait_timeout 控制)
    • set GLOBAL interactive_timeout=10000; show GLOBAL VARIABLES like '%timeout%';
    • Mysql 在执行过程中,临时使用的内存是管理在连接对象里面的。这些资源会在连接断开的时候才释放。

Read more

MySQL 基础知识


MySQL 基础概念
SQL 执行流程
MySQL DDL
MySQL SELECT 查询
MySQL COUNT
MySQL 存储过程
MySQL 事务
MySQL 游标
MySQL 锁
MySQL 子查询
MySQL 连接
MySQL 视图
MySQL 索引
MySQL 索引结构
MySQL 范式
MySQL 函数
SQLAlalchemy
MySQL 调优语句
kaggle titanic 数据分析
InnoDB 内部结构
SQL 注入

推荐书籍:

《MySQL从入门到精通》

关系型数据库模型介绍的论文

《Towards a Logical Reconstruction of Relat

Read more