
Algorithm
文章平均质量分 73
gzj_1101
一个喜欢新事物的码农
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
大整数的乘法运算
计算机存储数据是按照类型分配空间的,一般整形为两个字节范围在-32768~32767之间,长整形为4个字节32位,其范围在-2147483648~2147483647.现在我们利用数组来计算高精度数据(值超过长整形的范围): 例如:高精度数据*长整数算法如下:#include #includeusing namespace std;int main(){原创 2015-09-15 23:31:48 · 1084 阅读 · 0 评论 -
B-树
B-tree树即B树,B即Balanced,平衡的意思。因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树,其实,这是个非常不好的直译,很容易让人产生误解。如人们可能会以为B-树是一种树,而B树又是另一种树。而事实上是,B-tree就是指的B树。B-树(百度百科)原创 2015-09-01 22:51:01 · 877 阅读 · 0 评论 -
数据结构之String
#includeusing namespace std;#define MAXSTRLEN 255#define TRUE 1#define FALSE 0#define Status inttypedef unsigned char String[MAXSTRLEN]; Status StrAssign(String &T,char *chars);//创建串Status原创 2015-07-17 23:12:04 · 990 阅读 · 0 评论 -
栈的应用
学习数据结构一年了,现在才有点时间开始慢慢总结之前学过的一些东西,数据结构的好坏体现的 是一个程序员的基本功。数据结构和算法是一体的,当我们研究数据结构时,通常也涉及到算法。平时没有养成一个好的习惯,将很多东西都忘记了,以后努力将每天所学到的知识进行一个总结。闲话不多说。 栈,是一种在表尾进行插入或者删除的线性表。其特点为后进先出(LIFO),存储结构分为顺序存储或者链式存储。具体的概念性原创 2015-07-14 20:28:23 · 567 阅读 · 0 评论 -
最小生成树(普里姆算法)
#include#include#include #define INFINITY INT_MAX#define MAX_VERTEX_NUM 20#define OK 1#define ERROR -1#define TRUE 1#define FALSE 0typedef enum{DG , DN, UDG, UDN} GraphKind;//{有向图,有向网,无向图,原创 2014-11-30 21:08:06 · 756 阅读 · 0 评论 -
邻接表的深度优先搜索(DFS)
#include#include#define INFINITY INT_MAX#define MAX_VERTEX_NUM 20#define OK 1#define ERROR -1#define TRUE 1#define FALSE 0typedef enum{DG , DN, UDG, UDN} GraphKind;//{有向图,有向网,无向图,无向网}typede原创 2014-11-29 23:54:20 · 699 阅读 · 0 评论 -
邻接图的广度优先搜索(BFS)
//----------以无向网为例---------#include#include#define INFINITY INT_MAX#define MAX_VERTEX_NUM 20#define OK 1#define ERROR -1#define TRUE 1#define FALSE 0typedef enum{DG , DN, UDG, UDN} GraphKi原创 2014-11-29 16:09:06 · 651 阅读 · 0 评论 -
邻接表的基本操作(无向网)
#includeusing namespace std;#define MAX_VERTEX_NUM 20#define OK 1#define ERROR -1typedef int InfoType;typedef int VertexType;typedef int Status;typedef enum{DG , DN, UDG, UDN} GraphKind;//{有原创 2014-11-28 21:30:50 · 1523 阅读 · 0 评论 -
中序线索化二叉树
//线索化二叉树的作用//不是为了方便某种遍历,而是为了方便找到是一个节点的前驱和后继//采用特定的方式遍历,更加方便#include#include#define OK 1#define ERROR 0#define OVERFLOW 0typedef enum PointerTag{Link,Thread};// Link == 0:指针,Thread=原创 2014-11-27 20:33:23 · 598 阅读 · 0 评论 -
邻接矩阵的基本操作
#includeusing namespace std;#define INFINITY INT_MAX#define MAX_VERTEX_NUM 20#define OK 1#define ERROR 0typedef enum{DG , DN, UDG, UDN} GraphKind;//{有向图,有向网,无向图,无向网}typedef int VRTyp原创 2014-11-27 20:19:44 · 2038 阅读 · 1 评论 -
回形矩阵
回型矩阵:输入一个数字n,输出n阶回型矩阵例如:输入5输出1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9分析思路:回型矩阵最外圈一次是连着的,所以我们可以从最外圈赋值首先从上面开始赋值 1 2 3 4 5然后从右边开始赋值 6 7 。。。。紧接着是下面和左边依次进行,一圈一圈知道完成结果。#inclu...原创 2017-02-24 14:41:55 · 9714 阅读 · 3 评论 -
排序算法总结
这是对个人对于排序算法回顾和复习,所以可能写的很省略。如果之前没有学过可以看看参考列的博客。冒泡排序最坏的情况时间复杂度为O(n^2),最好时间复杂度O(n),最后时间复杂度发生在有序情况下。简单选择排序初始时在序列中找到最小(大)元素,放到序列的起始位置作为已排序序列;然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。以此类推,直到所有元素均排序完毕...原创 2018-06-08 15:59:26 · 389 阅读 · 0 评论 -
选择排序之堆排序
#include using namespace std;#define SIZE 20typedef int KeyType;typedef struct{ KeyType key;} RedType;typedef struct{ RedType r[SIZE + 1]; int length;} SqList;typedef SqLis原创 2015-09-08 19:32:36 · 627 阅读 · 0 评论 -
平衡二叉树
#include#include#define LH 1//左高#define EH 0//等高#define RH -1//右高#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0typedef int ElemType;typedef int Status;typedef int Boolean;typ原创 2015-10-16 23:13:00 · 616 阅读 · 0 评论 -
动态规划之矩阵链相乘
题目:n个矩阵连乘,求最少的乘法运算次数以及原创 2015-09-24 21:35:03 · 747 阅读 · 0 评论 -
最大子段和
求数列的最大子段和 给定了n个元素的整数列(可能为负整数),a1,a2,a3,a4....an,求形如 ai,ai+1,ai+2....aj的子段,使其和为最大。当所有的整数位负整数时,定义其最大子段为0、 例如当(a1,a2,a3,a4,a5)=(-2,11,-4,13,-5,-2)时,其最大子段和为20.分治算法求解:原创 2015-10-09 16:33:52 · 1659 阅读 · 0 评论 -
动态规划之0-1背包问题
给定n个物品和一个背包,物品i的重量是wi,其价值是vi,背包的容量为w,及最大载重量不超过W,在限定的总重量W内,我们如何选择物品,才能使物品的总价值最大。 具体问题: 有编号分别为a,b,c,d,e的五件物品,它们的重量分别是2,2,6,5,4,它们的价值分别是6,3,5,4,6,现在给你个承重为10的背包,如何让背包里装入的物品具有最大的价值总和? m(i,j)表示当前背包原创 2015-10-08 23:14:00 · 710 阅读 · 0 评论 -
tsp问题
旅行商问题(tsp问题)就是一个经销商从n个城市中的某一城市出发,不重复的走完其余的n-1个城市并回原出发点,求所有可能路径单中走出路径长度最短的一条。 本题假设旅行商从第一个城市出发、原创 2015-10-11 20:10:02 · 1739 阅读 · 2 评论 -
ACM-超级楼梯
Problem Description有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? Input输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1 Output对于每个测试实例,请输出不同走法的数量。Sample Input223原创 2015-11-15 09:52:44 · 1472 阅读 · 0 评论 -
分支限界法之单源最短路径
分支限界法通常是是广度优先或者以最小消耗(最大效益)优先的方式搜索问题的解控键树。FIFO分支限界法 按照先进先出的原则选择下一个活结点作为扩展结点,即从节点中取出的顺序与加入结点的顺序相同。分支限界法算法策略(1活节点一旦成为扩展结点,就一次性产生其所有儿子结点(2)在这些儿子结点中,导致不可行或者非最优解的儿子结点将会被舍弃,其余儿子结点加入活节点表中。(3)原创 2015-10-07 23:31:18 · 42816 阅读 · 9 评论 -
图的m着色问题
图的m-着色问题:给定无向连通图G和m种颜色。用这些颜色为G的各个顶点着色,每个顶点着一种颜色。如果有一种色法使G的每条边的两个顶点着不同的颜色,则称这个图示m个着色的。图的m着色问题是对于给定图G和m种颜色,找出所有的不同的着色方法。 假设图G有6个顶点,可以用三种颜色来着色,三种颜色的编号分别是1,2,3.下面是无向图G的一种涂色情况,根据定义可得相邻的两点的颜色不能是一样的原创 2015-12-06 00:12:09 · 1811 阅读 · 0 评论 -
奇偶校验
题目描述输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'3’,输出:10110011)。 输入包括一个字符串,字符串长度不超过100输出描述:可能有多组测试数据,对于每组数据,对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。输入例子:33a输出例子:101100111011001101100001#include<iostre...原创 2017-02-22 11:10:13 · 864 阅读 · 0 评论 -
分治算法-残缺棋盘
残缺棋盘是一个2^k*2^个方格的棋盘,其中恰有1个方格残缺。图中给出,其中残缺部分用阴影表示。这样的棋盘称为"三格板",残缺棋盘问题就是用这四种三格板覆盖更大的残缺棋盘。再次覆盖中要求:(1)两个三格板不能重复。(2)三格板不能覆盖残缺棋盘方格,但必须覆盖到其他所有的方格。算法思路:利用分治算法将棋盘细化,逐步解决,以4*4为例首先判断残缺的位置在哪里,然原创 2015-10-24 19:06:52 · 11194 阅读 · 5 评论 -
爱奇艺2018算法工程师笔试
平方和如果一个字符串S是由两个字符串T连接而成,即S = T + T, 我们就称S叫做平方串,例如”“,”aabaab”,”xxxx”都是平方串. 牛牛现在有一个字符串s,请你帮助牛牛从s中移除尽量少的字符,让剩下的字符串是一个平方串。换句话说,就是找出s的最长子序列并且这个子序列构成一个平方串。 输入描述:输入一个字符串s,字符串长度length(1 ≤ length ≤ 50),...原创 2018-07-26 11:50:52 · 2439 阅读 · 0 评论