自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

redAnt的博客

有梦想,爱学习,实力派

原创 挑战408——数据结构部分目录

前言 挑战408——数据结构(1)——个人的一些学习方法 算法基础概念 挑战408——数据结构(2)——选择排序算法 挑战408——数据结构(3)——Big-O表示法 挑战408——数据结构(4)——Big-O表示法(2) 挑战408——数据结构(5)——合并算法 挑战408——数据...

2019-10-31 22:30:36

阅读数 104

评论数 0

原创 C++学习与基础算法专栏目录

函数 C++抽象编程——函数与库 C++中的值传递和引用传递 接口 C++抽象编程——接口(1)——.h文件与.cpp文件的建立 C++抽象编程——接口(2)——接口的用途 C++抽象编程——接口(3)——接口设计的重点 C++抽象编程——接口(4)——随机接口的设计 C++...

2017-05-26 00:49:16

阅读数 1601

评论数 4

原创 挑战408——一周网络——网络层(4)

随着互联网的飞速发展,到2011年2月,IPV4的地址已经耗尽。虽然我们可以通过划分子网和构成超网的方式来缓解IPV4地址紧张的问题,但是解决IP地址耗尽的根本措施就是采用具有更大空间的新版本——IPV6。 对比IPV4,新版本的IPV6变化如下: 地址空间更大。地址从原有的32位扩充为1...

2019-12-02 10:28:39

阅读数 8

评论数 0

原创 挑战408——操作系统(25)——I/O系统及其设备

这部分内容是结合组成原理一起总结的,因为这部分内容两个科目的重叠度还是很高的。于是放在这里一起总结。 I/O系统的发展阶段 早期阶段 早期的I/O系统,I/O设备比较少,所以大部分的I/O设备都是直接跟Cpu交互的: 显然这种模式下是以串行方式进行的,且和浪费CPU的时间,再者这种直接与CPU交...

2019-11-30 17:26:12

阅读数 38

评论数 0

原创 挑战408——一周网络——网络层(3)

路由选择协议 我们都知道,ip数据报是根据路由表进行转发的,那么路由表又是如何得出的呢?

2019-11-24 23:00:30

阅读数 41

评论数 0

原创 挑战408——数据结构(32)——折半查找法

折半查找这种思想其实我们之前就已经接触过挑战408——数据结构(20)——二叉搜索树(BST)。这里我们同样采用相同的方式来实现在顺序表中是怎么使用这种思想来查找的。 一个数组查询的实例 查找问题,可以简单理解为我们有大量的数据,我们怎么样可以在这大量的数据中快速找到需要的数据? 假设我们有...

2019-11-23 14:05:26

阅读数 16

评论数 0

原创 挑战408——数据结构(31)——Hash表的基本操作和冲突避免

从上一篇博文我们知道,哈希表是一种以关联方式存储数据的数据结构。 在哈希表中,数据以数组格式存储,其中每个数据值都有其自己的唯一索引值。 如果我们知道所需数据的索引,则数据访问将变得非常快。 因此,它成为一种数据结构,其中插入和搜索操作非常快,而与数据的大小无关。 哈希表使用数组作为存储介质,并使...

2019-11-21 00:09:36

阅读数 13

评论数 0

原创 挑战408——数据结构(30)——Hash表与Hash函数

hash函数的引入 在介绍hash函数之前,先说个实际的例子。我是个比较乱的男生,袜子啊,书籍什么的都乱扔。那么哪天如果要找某件东西,在最坏的情况下,你需要找遍你房间的所有角落。但是,如果你是个爱收拾的男生,那么你要找某件东西的话,直接去对应的地方去寻找就好了。如果用算法复杂度表示,那么前者就是O...

2019-11-20 22:09:27

阅读数 22

评论数 0

原创 挑战408——数据结构(29)——最短路径算法(Dijkstra's Algorithm)

在图中,给每一条路径带上一定的权重,这样的图我们称为带权图。如下图所示: 带权图 我们现在来回顾一下BFS跟DFS的基本思想: 深度优先搜索:继续沿着路径搜索,直到我们需要回溯,但这种方式不保证最短路径。 广度优先搜索:查看包含距离1的邻居,然后是距离2的邻居等的路径,直到找到路径,这种...

2019-11-20 10:28:49

阅读数 134

评论数 1

原创 挑战408——数据结构(28)——图的应用之拓扑排序

一个无环的有向图称为有向无环图(DAG)。图的顶点可以表示要执行的任务,并且边可以表示一个任务必须在另一个之前执行的约束; 在这个应用程序中,拓扑排序只是任务的有效序列。 当且仅当图形没有有向循环时,即如果它是有向无环图(DAG),则可以进行拓扑排序。 任何DAG都具有至少一个拓扑排序。这种用弧来...

2019-11-19 22:54:38

阅读数 8

评论数 0

原创 挑战408——数据结构(27)——图的应用之最小生成树

图在我们现实生活中具有极其广泛的应用,我们这篇博文着重从以下几点展开分析: 网络路由与路由选择(Internet routers and traceroute) 拓扑排序(Topological Sort) 最小生成树(Minimum Spanning Trees) Kruskal’s...

2019-11-19 15:10:36

阅读数 25

评论数 0

原创 挑战408——数据结构(26)——广度优先搜索算法(BFS)思想

尽管深度优先搜索具有许多重要用途,但该策略也具有不适合某些应用程序的缺点。 深度优先方法的最大问题在于它从其中一个邻居出发,在它返回该节点或者是访问其他邻居之前,它必须访问完从出发节点开始的整个路径。 如果我们尝试在一个大的图中发现两个节点之间的最短路径,则使用深度优先搜索会将我们一直带到图的远端...

2019-11-18 10:13:55

阅读数 47

评论数 0

原创 挑战408——数据结构(25)——深度优先搜索算法(DFS)思想

图由顶点及其边组成,图的遍历主要分为两种: 遍历所有顶点 遍历所有边 图的遍历 我们只讨论第一种情况,即不重复的列出所有的顶点,主要有两种策略:深度优先搜索(DFS),广度优先搜索(BFS) 为了使深度和广度优先搜索的实现算法的机制更容易理解,假设提供了一个名为visit的函数,它负责处理每个...

2019-11-17 23:33:22

阅读数 41

评论数 0

原创 挑战408——数据结构(24)——图的存储与矩阵压缩

图的存储方式 在实践中,存储图最常见的策略是: 将每个节点的连接存储在邻接列表中。 将整个图形的连接存储在邻接矩阵中。 用邻接链表来表示图之间的关系 在图中表示连接的最简单方法是在每个节点的数据结构中存储与其连接的节点的列表。该结构称为邻接列表。 例如,在航空公司图表中 每一个节点连接的相邻...

2019-11-17 14:40:20

阅读数 77

评论数 1

原创 挑战408——数据结构(23)——树与图

我们先回顾一下之前介绍的树的概念,在树的定义中,每个节点只能有一个父类,并且树中不能出现有环形。但是你可曾想过,当一棵树没有任何规则的时候,会发生什么吗? 图的简介 现在,我们给图(graph)下一个定义: 图,是一种用节点和边来表示相互关系的数学模型。(A graph is a mathe...

2019-11-17 13:57:42

阅读数 51

评论数 0

原创 挑战408——组成原理(28)——系统总线

总线的基本概念 计算机系统的五大部件之间连接的方式有两种,一种是各部件之间使用单独的连线,称为分散连接。一种是将各部件连到一组公共信息传输线上,称为总线连接。 总线是连接多个部件的信息传输线,是各部件共享的传输介质,当多个部件与总线项链时,如果出现两个或者两个以上部件想总线发送信息,势必导致总线上...

2019-11-13 22:40:58

阅读数 25

评论数 0

原创 挑战408——数据结构(22)——平衡二叉树与AVL算法

平衡树介绍 前几篇的文章我们介绍了一下二叉树和二叉搜索树。现在假设我们要建立一棵BST,依次插入下列数据: 20, 33, 50, 61, 87, 99 那么按照BST的规则我们可以得到下列的BST: 如果你问我,这是一棵二叉搜索树吗?这肯定的。但是它更像什么?链表!有什么区别呢?数据...

2019-11-11 10:00:31

阅读数 39

评论数 0

原创 挑战408——组成原理(27)——流水线的影响因素

之前说过,目前影响流水线 主要的冲突有: 资源冲突(结构相关),数据冲突(重点),控制冲突。 结构相关 多条指令进入流水线后,在同一始终周期内争用同一功能部件。这种冲突的通常解决方式为: 前一个指令访存的时候,后一个指令暂停一个时钟周期(拖慢一拍),再执行。 增设一个功能部件 数据相关 后续的...

2019-11-06 22:28:01

阅读数 25

评论数 0

原创 挑战408——数据结构(21)——二叉搜索树的插入和删除

在二叉搜索树种最重要的就是插入和删除操作了 二叉搜索树的插入 我们要在二叉搜索树中执行各种操作的前提就是,我们首先要有一棵二叉搜索树。那么,如何创建一棵二叉搜索树呢?最简单的方法就是我们可以从一棵空树开始,每次调用一个addNode函数,将一个新的值插入二叉搜索树中。但是在每次插入的时候我们都...

2019-11-06 21:22:03

阅读数 20

评论数 0

原创 挑战408——数据结构(20)——二叉搜索树(BST)

在之前的文章中,我们提到过三叉树,n叉树,但是我们实际用的最多却是二叉树,因为这样的结构更适合我们编程和更适合我们使用递归的方式。所以我们可以限制孩子的数量使得生成的树更容易实施。那么怎么定义二叉树呢? 树中的每个节点至多有两个孩子。 除根节点之外的每个节点均被指定为其父项的左侧子项或右侧子项。...

2019-11-05 21:36:27

阅读数 16

评论数 0

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