StoneRiver Blog


  • 首页

  • 分类

  • 归档

  • 标签

常用UML图简介

发表于 2020-05-02 | 分类于 工具积累

一、什么是UML

UML 是统一建模语言(UnifiedModelingLanguage)的简称。是面向对象软件的标准化建模语言。

UML1.0 & 2.0 共有14种类型的图:

本文选择较为常用的四种进行介绍:

  1. 类图。
  2. 用例图。
  3. 状态图。
  4. 时序图。
阅读全文 »

排序算法:归并排序 & 快速排序

发表于 2020-03-17 | 分类于 理论学习

这两种排序的思想都是采用分治思想解决问题。将时间复杂的降到 O(n log n ),放到一起进行总结。

一、n*log n 中 log n 的由来

为什么采用分治的思想解决问题时,往往会出现log n这样的特殊计算式。分析一下原因,下面是规模为N的一个任务的拆解:

阅读全文 »

排序算法:综述 & 简单排序

发表于 2020-03-14 | 分类于 理论学习

一、分类

常用的排序有:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序等。

前三个理解起来相对简单,分类为简单排序。基于元素比较进行,时间复杂度都为O(n²)。

中间两个,归并 & 快排,复杂一些,但思路比较统一。基于元素比较进行,时间复杂度都为O(n log n)。

后面三个解决问题的思路特殊,并非基于比较进行,对数据有一定要求,但时间复杂度可以做到O(n)。

阅读全文 »

递归与尾调用优化

发表于 2020-03-11 | 分类于 解决方案

一、如何理解递归

递归是一种算法,或者说是一种编程技巧。思路是将大规模的问题划分为另一个或者多个小规模的子问题。子问题继续划分为更小的子问题,直到最小的问题能一眼看出结果。由大问题化小的过程就是“递”,由小问题的结果一步步计算大问题的结果的过程就是“归”。

阅读全文 »

基础数据结构-栈&队列

发表于 2020-03-08 | 分类于 理论学习

一、什么是栈 & 队列

栈和队列也都是一种线性表,只是它们的操作是受限的:

  • 栈只允许在一端插入(push)和删除(pop)数据,先进后出。
  • 队列在只允许在两端操作数据,有入队(enqueue)和出队(dequeue)两种操作,先进先出。

和 数组 或者 链表 的特点归功于它们底层的数据组织形式不同,栈和队列的特点归功于数据的操作限制(或者称为约定)。栈和队列既可以基于数组实现,也可以基于链表实现。

阅读全文 »

基础数据结构-链表

发表于 2020-03-08 | 分类于 理论学习

一、什么是链表

线性表结构,每个存储节点除了有数据外还有指针,通过指针将零散的内存块串联,无需连续的内存空间。

阅读全文 »

基础数据结构 - 数组

发表于 2020-03-07 | 分类于 理论学习

一、什么是数组

数组是一种线性表结构,用一组连续的内存空间,存储一组具有相同数据类型的数据。

线性表:数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。除了数组,链表、队列、栈等也是线性表。

这里提到了线性表,自然有非线性表:数据之间并不是简单的前后关系。比如二叉树、堆、图等。

阅读全文 »

计算机为什么用补码表示负数

发表于 2020-03-07 | 分类于 理论学习

一般计算机中直接使用二进制表示数,其中的负数是如何表示的呢?

你会怎么表示

拿到这个问题,第一直观的反应是 用最高位表示符号位,后面的位表示数值?比如符号位 0 表示正数,1 表示负数。

以java中byte(8位)为例,即 +10 为:0000 1010。-10 为:1000 1010。

实际上计算机内部是用“补码”表示负数。

阅读全文 »

四呆的Mysql教程 - 第二讲

发表于 2019-03-28 | 分类于 其它

一、数据的导入导出

这样的方式在生产环境中并不常见,但是在学习数据库时能通过这样直接的方式传递数据,便于学习交流。

1.1 导出数据到.sql文件

操作方式如下

阅读全文 »

四呆的Mysql教程 - 第一讲

发表于 2019-02-21 | 分类于 其它

一、Mysql简介

1.1 如何理解DB(数据库)

数据库(DB,database)是按照数据结构来组织、存储和管理数据的“仓库”。
知道它能存放数据就好。
Mysql就是常用的关系型数据库之一,开源不要钱!!

阅读全文 »
1…345
石河

石河

43 日志
9 分类
27 标签
© 2014 - 2023 石河 鄂ICP备 - 18004935号