Welcome 微信登录

首页 / 软件开发 / 数据结构与算法

Floyd求最短路径算法详解

Floyd求最短路径算法详解

Floyd求最短路径算法详解2013-05-24倘若我们要在计算机上建立一个交通咨询系统则可以采用图的结构来表示实际的交通网络。其实现最基本的功能,求出任意两点间的最短路径,求最短路径的经典方法有很多种,最常用的便是迪杰斯特拉算法和佛洛依德(Floyd)算法,这篇文章就着重介绍Floyd算法。求两点之间的最短路径无外乎有两种情况,一种就是从一点直接到另一点,另一种就是从一点经过n个节点后再到另一个节点,比如说要从A到B,则有两种情况就是A直接到B,或者是从...
程序员的神经网络反向传播

程序员的神经网络反向传播

程序员的神经网络反向传播2013-05-24 MSDN James McCaffrey可以认为人造神经网络神经网络就是一个元功能,它能接收固定数目的数字输入并且生成固定数目 的数字输出。在大部分情况下,神经网络有一个隐藏神经元层,它里面的隐藏神经元和输入神经元以及 输出神经元完全连接。和每个单个隐层神经元以及每个单个输出神经元相关的是一组加权值和一个单个 的偏置值。权重和偏置决定了一组既定输入值的输出值。在使用神经网络来对现有数据进行建 模以对新数据进行预...
从装配线到DNA比对——神器动态规划

从装配线到DNA比对——神器动态规划

从装配线到DNA比对——神器动态规划2013-05-24对于一个问题,我们如果可以枚举所有的解,那么这个解空间我们是知道的。那么如何在解空间里面找到最优解呢?这时有一个非常好的方法,从底向上地构造整个解,而每一步都是从地层寻求最优解,这样就能保证在最终得到的一定是最优解。这就是最优子结构,有这种结构的问题,通常都可以用动态规划的办法来寻求最优解。而且它是从小规模(子问题)到大规模问题的构造,而常常这样的解法能够用一张表直观地表现出来。表中的元素是一个表达式...
双端队列算法练习题

双端队列算法练习题

双端队列算法练习题2013-05-24 cnblogs 一线码农话说大学的时候老师说妹子比工作重要~,工作可以再换,妹子这个。。。所以。。。这两个月也就 一直忙着Fall in love,嗨,慢慢调整心态吧,这篇就选一个简单的数据结构聊一聊,话说有很多数据 结构都在玩组合拳,比如说:块状链表,块状数组,当然还有本篇的双端队列,是的,它就是栈和队列 的组合体。一:概念我们知道普通队列是限制级的一端进,另一端出的FIFO形式,栈 是一端进出的LIFO形式,而双...
VMware内存机制的空闲内存税算法

VMware内存机制的空闲内存税算法

VMware内存机制的空闲内存税算法2013-05-24我曾经在vmsky的论坛发表过一篇探讨VMware内存机制的帖子(见此http://bbs.vmsky.com/thread-23285-1-2.html),最后探讨的例子是一个考虑了空闲内存税(Idle Memory Tax,以下简称IMT)情况下的内存分配计算,但遗憾的是当时猜想的算法是错误的。今天在阅读了Carl的关于内存机制的论文后,深感有必要重新说明一下。空闲内存税(Idle Memory ...
数据结构简介及基本名词

数据结构简介及基本名词

数据结构简介及基本名词2013-05-24数据结构这门课数据结构作为一个科目来说,它是研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作的学科。描述问题不再是数学模型而是图表树等。注意:数据结构并非计算机所特有,它是研究对象是非数值,比如:一个图书馆图书的收藏,可以把图书看做是数据,然后研究图书科目之间的关系。这就是一种数据结构,与计算机并不挂钩的数据结构。 我们作为计算机专业的一员,就要用计算机的知识去学习这一门课程。用计算机的语言去...
线性表的类型定义

线性表的类型定义

线性表的类型定义2013-05-24线性表简介线性结构是一个数据元素的有序(次序)集合。线性结构的基本特征为:1. 集合中必存在唯一的一个“第一元素”;2.集合中必存在唯一的一个 “最后元素” ;3.除最后元素在外,均有 唯一的后继;4.除第一元素之外,均有 唯一的前驱线性表的类型定义ADT(抽象数据类型)是描述逻辑结构的,它的的实现用物理存储来实现,有两种: 顺序存储结构和链式存储结构。抽象数据类型线性表的...
线性表的顺序表示与实现

线性表的顺序表示与实现

线性表的顺序表示与实现2013-05-24线性表是线性结构,我们来研究它的逻辑关系,用ADT(抽象数据类型)来表示,ADT的描述可以从顺序结构表示和链式结构表示。线性表的表示与实现-------顺序结构关于顺序结构顺序结构用顺序表来实现和描述。顺序表在C语言中通常会用一维数组来表示顺序存储结构。顺序表结构特点:随机查找,删除插入麻烦,可变大小。用一组地址连续的存储单元依次存放线性表中的数据元素,顺序表中的每个在逻辑上相邻的元素在物理存储位置上也是相邻的。如...
直接插入排序简介

直接插入排序简介

直接插入排序简介2013-05-24排序是计算机程序设计中一种重要的操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。我们之前所熟知的大概是冒泡排序,选择排序,但相对来说,这两种方法的效率不是太高,在这篇文章中我简单的介绍下直接插入排序。直接插入排序是一种简单的排序方法,它的基本操作是将一个记录插入到已排好的有序表中,从而得到一个新的.记录数增一的有序表。例如:一直待排序的一组记录的初始排列如下 所示:R(49), R(...
排序算法简介及其C实现

排序算法简介及其C实现

排序算法简介及其C实现2013-05-24排序算法(Sorting Algorithm)是计算机算法的一个组成部分。排序算法是将一个序列按照大小顺序重新排列。排序是古老但依然富有挑战的问题。Donald Knuth的经典之作《计算机程序设计艺术》(The Art of Computer Programming)的第三卷就专门用于讨论排序和查找。从无序到有序,从统计物理的角度看,就是减小了系统的熵值,增加了系统的有序度。有序这一特征是关于系统的非常有用的先验...
表(list)简介及实现

表(list)简介及实现

表(list)简介及实现2013-05-24表表(list)是常见的数据结构。从数学上来说,表是一个有序的元素集合。在C语言的内存中,表储存为分散的节点(node)。每个节点包含有一个元素,以及一个指向下一个(或者上一个)元素的指针。如下图所示:表: 橙色储存数据,蓝色储存指针图中的表中有四个节点。第一个节点是头节点(head node),这个节点不用于储存元素,只用于标明表的起始。头节点可以让我们方便的插入或者删除表的第一个元素。整个表中包含有三个元素(...
栈(stack)简介及实现

栈(stack)简介及实现

栈(stack)简介及实现2013-05-24栈(stack)是简单的数据结构,但在计算机中使用广泛。它是有序的元素集合。栈最显著的特征是LIFO (Last In, First Out, 后进先出)。当我们往箱子里存放一叠书时,先存放的书在箱子下面,我们必须将后存放的书取出来,才能看到和拿出早先存放的书。栈中的每个元素称为一个frame。而最上层元素称为top frame。栈只支持三个操作, pop, top, push。pop取出栈中最上层元素(8),...
队列(queue)简介及实现

队列(queue)简介及实现

队列(queue)简介及实现2013-05-24队列(queue)是又一个简单而常见的数据结构。队列也是有序的元素集合。队列最大的特征是First In, First Out (FIFO,先进先出),这一点与栈(stack)形成有趣的对比。队列在生活中很常见,排队买票、排队等车…… 先到的人先得到服务并离开队列,后来的人加入到队列的最后。队列是比较公平的分配有限资源的方式,可以让队列的人以相似的等待时间获得服务。队列支持两个操作...
树, 二叉树及二叉搜索树的简介与实现

树, 二叉树及二叉搜索树的简介与实现

树, 二叉树及二叉搜索树的简介与实现2013-05-24树的特征和定义树(Tree)是元素的集合。我们先以比较直观的方式介绍树。下面的数据结构是一个树:树有多个节点(node),用以储存元素。每个节点可以有多个子节点(children),而该节点是相应子节点的父节点(parent)。比如说,3,5是6的子节点,6是3,5的父节点;1,8,7是3的子节点, 3是1,8,7的父节点。树有一个没有父节点的节点,称为根节点(root),如图中的6。没有子节点的节点...
堆(heap)简介及实现

堆(heap)简介及实现

堆(heap)简介及实现2013-05-24堆(heap)又被为优先队列(priority queue)。堆并不是队列的子集。回忆一下,在队列中,我们限定的操作是dequeue和enqueue。其中dequeue是按照进入队列的先后顺序来取出元素。在堆中,我们不是按照元素进入队列的先后顺序取出元素的,而是按照元素的优先级取出元素。这就好像候机的时候,无论谁先到达候机厅,总是头等舱的乘客先登机,然后是商务舱的乘客,最后是经济舱的乘客。每个乘客都有头等舱、商务...
数据结构的C++实现之程序加图示分析单链表的插入和删除操作

数据结构的C++实现之程序加图示分析单链表的插入和删除操作

数据结构的C++实现之程序加图示分析单链表的插入和删除操作2013-08-13 csdn Simba888888下图展示了单链表的基本结构:head指针是链表的头指针,指向第一个节点,每个节点的next指针域指向下一个节点,最后一个节点的next指针域为NULL,在图中用0表示。下面先来看程序(栈的链式存储实现,另外一个实现点这里)和对应的输出(注意输出前进行了链表反转(见《单链表反转》,否则程序后面的while循环输出的顺序是250,200,100),接...
<< 191 192 193 194 195 196 197 198 199 200 >>