amoscykl的博客

凡有成者,必务于实。凡有所学,皆成性格。

经典排序算法实现和总结

算法分类 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 算法复杂...

2018-12-22 00:26:25

阅读数 87

评论数 0

muduo源码分析:Reactor模式的封装实现

关于muduo实现的Reactor模式,有三个关键的类: 1.事件分发器类Channel 2.封装I/O复用的Poller (主要研究EpollPoller) 3.定时器接口类TimerQueue 事件循环EventLoop类实现了Reactor的基本模式。   1.事件分发类Chann...

2018-10-31 01:24:17

阅读数 147

评论数 0

Ping的工作原理

PING的工作流程 我们以下面一个网络为例:有 A、B、C、D 四台机子,一台路由 RA,子网掩码均为 255.255.255.0,默认路由为 192.168.0.1 1.在同一网段内 在主机 A 上运行“Ping 192.168.0.5”后,都发生了些什么呢? 首先,Ping 命令会构建一...

2019-04-15 13:41:53

阅读数 29

评论数 0

局域网内和局域网间的通信(交换机与路由器)

交换机和路由器区别 交换机主要是用于组建局域网,而路由器则是负责让主机连接外网。 局域网间通信 例子1: PC1与PC2通信时,在PC1电脑中,应用层产生数据交给传输层;传输层进行数据的分段,使数据的大小适合在网络上传递,根据应用层不同软件产生的数据,选择...

2019-04-10 18:54:46

阅读数 143

评论数 0

剑指offer:二叉树的下一个结点

题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 AC C++ Solution: class Solution { public: TreeLinkNode* GetNext(Tr...

2019-04-06 16:24:53

阅读数 16

评论数 0

剑指offer: 丑数

题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 AC C++ Solution: 每个丑数都是前面的丑数乘以2,3,5得到的,所以此题可以通过...

2019-04-05 19:05:33

阅读数 14

评论数 0

剑指offer:二叉搜索树与双向链表

题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 解题思路: 对于二叉搜索树,中序遍历的即是一个有序的序列,所以进行中序遍历从而构造一个有序的链表。 class Solution { public: ...

2019-04-04 11:13:38

阅读数 25

评论数 0

剑指offer: 按之字形顺序打印二叉树

题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 解题思路: 利用一个双端队列,一个方向标志,当本行是从左往右遍历时,将其子节点按 左节点 右节点 的顺序先后加入到队列头;当本行是从...

2019-04-02 14:39:38

阅读数 21

评论数 0

剑指offer:把二叉树打印成多行

题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 解题思路: 二叉树层次遍历, 利用一个队列,每层之间用一个NULL分割开,当遇到NULL则代表当前层已遍历完 AC C++ Solution: class Solution { public: ...

2019-04-02 13:35:26

阅读数 16

评论数 0

剑指offer: 二叉搜索树的后序遍历序列

题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 解题思路: 对于BST的后序序列,最后一个元素即为根节点, 根节点的左子树为数组前段,右子树为数组后段; AC C++ Solution:...

2019-04-02 13:10:53

阅读数 20

评论数 0

剑指offer: 二叉搜索树的第K个节点

题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 解题思路: 对于二叉搜索树,中序遍历即使从小到大的排序,同时用一个变量记录,当遍历到第k个的时候就返回。 class Solution { p...

2019-04-02 12:57:12

阅读数 15

评论数 0

剑指offer: 滑动窗口的最大值

题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,...

2019-04-02 12:45:52

阅读数 20

评论数 0

剑指offer: 机器人的运动范围

题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为...

2019-04-02 12:42:46

阅读数 16

评论数 0

剑指offer:最小的k个数

题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 思路: 使用C++中的mutiset容器(可包含重复元素),multiset是有序的,使用greater<T>,使multis...

2019-03-30 18:16:59

阅读数 13

评论数 0

数据库系统原理: 并发控制之悲观锁与乐观锁

1. 并发控制 在多线程环境下,为了保证线程安全,需要使用并发控制。 数据库管理系统中有事务的概念,它是一组操作,并且满足 ACID 特性。一个事务可以看成一组任务,而任务是由线程驱动的,因此事务也可以并发地执行。并发执行多个事务时,为了保证每个事务都具有 A...

2019-03-25 09:31:48

阅读数 20

评论数 0

数据库系统原理: 封锁 (封锁粒度、封锁类型、封锁协议)

封锁 封锁粒度 MySQL 中提供了两种封锁粒度:行级锁以及表级锁。 应该尽量只锁定需要修改的那部分数据,而不是所有的资源。锁定的数据量越少,发生锁争用的可能就越小,系统的并发程度就越高。 但是加锁需要消耗资源,锁的各种操作(包括获取锁、释放锁、以及检查锁状态)都会增加系统开销。因此封锁粒...

2019-03-24 23:42:24

阅读数 76

评论数 0

LeetCode 300.Longest Increasing Subsequence (最长上升子序列)

题目描述: 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是[2,3,7,101],它的长度是 4。 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你...

2019-03-20 22:24:18

阅读数 13

评论数 0

LeetCode 239.Sliding Window Maximum (滑动窗口最大值)

题目描述: 给定一个数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口k内的数字。滑动窗口每次只向右移动一位。 返回滑动窗口最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,...

2019-03-19 23:04:31

阅读数 13

评论数 0

MySQL中键(key)和索引(index)的区别

key和index区别 mysql的key和index多少有点令人迷惑,这实际上考察对数据库体系结构的了解的。 1.key 是数据库的物理结构,它包含两层意义,一是约束(偏重于约束和规范数据库的结构完整性),二是索引(辅助查询用的)。包括primary key, unique key, fo...

2019-03-14 15:12:46

阅读数 73

评论数 0

为什么建立TCP连接需要三次握手,为什么断开TCP连接需要四次握手,TIME_WAIT状态的意义

为什么建立TCP连接需要三次握手? 原因:为了应对网络中存在的延迟的重复数组的问题 (已失效的连接请求报文段) 例子: client 发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达 server。本来这是一个早已失效的报文段。但...

2019-02-19 17:40:32

阅读数 93

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭