一、什么是UML
UML 是统一建模语言(UnifiedModelingLanguage)的简称。是面向对象软件的标准化建模语言。
UML1.0 & 2.0 共有14种类型的图:
本文选择较为常用的四种进行介绍:
- 类图。
- 用例图。
- 状态图。
- 时序图。
UML 是统一建模语言(UnifiedModelingLanguage)的简称。是面向对象软件的标准化建模语言。
UML1.0 & 2.0 共有14种类型的图:
本文选择较为常用的四种进行介绍:
这两种排序的思想都是采用分治思想解决问题。将时间复杂的降到 O(n log n ),放到一起进行总结。
为什么采用分治的思想解决问题时,往往会出现log n这样的特殊计算式。分析一下原因,下面是规模为N的一个任务的拆解:
常用的排序有:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序等。
前三个理解起来相对简单,分类为简单排序。基于元素比较进行,时间复杂度都为O(n²)。
中间两个,归并 & 快排,复杂一些,但思路比较统一。基于元素比较进行,时间复杂度都为O(n log n)。
后面三个解决问题的思路特殊,并非基于比较进行,对数据有一定要求,但时间复杂度可以做到O(n)。
递归是一种算法,或者说是一种编程技巧。思路是将大规模的问题划分为另一个或者多个小规模的子问题。子问题继续划分为更小的子问题,直到最小的问题能一眼看出结果。由大问题化小的过程就是“递”,由小问题的结果一步步计算大问题的结果的过程就是“归”。
栈和队列也都是一种线性表,只是它们的操作是受限的:
和 数组 或者 链表 的特点归功于它们底层的数据组织形式不同,栈和队列的特点归功于数据的操作限制(或者称为约定)。栈和队列既可以基于数组实现,也可以基于链表实现。
数组是一种线性表结构,用一组连续的内存空间,存储一组具有相同数据类型的数据。
线性表:数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。除了数组,链表、队列、栈等也是线性表。
这里提到了线性表,自然有非线性表:数据之间并不是简单的前后关系。比如二叉树、堆、图等。
一般计算机中直接使用二进制表示数,其中的负数是如何表示的呢?
拿到这个问题,第一直观的反应是 用最高位表示符号位,后面的位表示数值?比如符号位 0 表示正数,1 表示负数。
以java中byte(8位)为例,即 +10 为:0000 1010。-10 为:1000 1010。
实际上计算机内部是用“补码”表示负数。
数据库(DB,database)是按照数据结构来组织、存储和管理数据的“仓库”。
知道它能存放数据就好。
Mysql就是常用的关系型数据库之一,开源不要钱!!