
算法
wangdeqiang2007
计算机专业,通信行业,芯片行业
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ACM-POJ 算法训练指南
初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.图算法: (1)图的深度优先遍历和广度优先遍历. (2)最短路径算法(di转载 2018-01-01 20:22:39 · 354 阅读 · 0 评论 -
LCS longest common sequence
标题 LCS longest common sequencehttps://www.cnblogs.com/handsomecui/p/4717444.html原创 2018-11-26 22:50:24 · 221 阅读 · 0 评论 -
c语言中结构的sizeof如何计算
算法思路: 1. offset设置为0. offset就是分配空间的偏移量 2. 依次对结构里面的每个成员p进行下面的计算。如果计算完毕,跳到第7步。 2. 计算temp=min(p的对齐参数,系统对齐参数)。p如果是内置数据类型,对齐参数有编译器给出。比如char的对齐参数是1等等。系统对齐参数由#pragram pack(n)设置,默认为8。如果p本身是数据结构,p里面最大的成员对齐参数...原创 2018-09-14 10:00:35 · 451 阅读 · 0 评论 -
Android树形 TreeView实现,支持动态增加和删除节点
参考过下面的非常好的博客,写了个treeView https://blog.youkuaiyun.com/lmj623565791/article/details/40212367但是美中不足的是: 1. 这个treeview只能查,无法修改(比如删除节点等) 本实现就是对上述博文的一个改进。原理分析: listview是android原生非常强大的展示list的view;我的实现就是基于这个...原创 2018-05-02 12:20:24 · 4301 阅读 · 2 评论 -
汉诺塔 算法
汉诺塔算法的核心是递归。 假定有3个队列,c1,c2和c3 初始:c1(n,n-1,n-2,…,2,1),c2(),c3() 表示:c1上有数字,从下到上:n,n-1,n-2,…,2,1. c2和c3为空目标: 借助c3,将c1上的所有数字搬运到c2算法: 1. 借助c2,将c1上的(n-1,n-2,…,2,1)的n-1个数据搬运到c3 2. 然后将c1上的n搬运到c2 3. ...原创 2018-04-19 19:37:59 · 2520 阅读 · 0 评论 -
小于1000以内阶乘计算
1000以内阶乘,估算位数不会超过3000. 因此使用char result[3000]来保存结果。调试中出现的坑: 1. 最大的坑是计算result的有效长度。我开始使用strlen()进行计算,这是有问题的。因为我直接使用的是数字,而非字符。比如数字可能是0,那么计算strlen就完全错误了。后来我使用size变量来记住当前result的长度,解决了这个问题。 2. 存放结果一定是反序...原创 2018-04-09 09:05:06 · 755 阅读 · 0 评论 -
环形队列 - c语言实现
本文包含了三个文件 1. loopqueue.c //环形链表的C语言 2. loopqueue.h //环形链表的头文件 3. main.c //测试代码loopqueue.c#include "stdlib.h"#include "loopQueue.h"#include "stdio.h"typedef struct{ char *buf;原创 2018-02-06 15:16:37 · 906 阅读 · 0 评论 -
环形队列 - java实现
public class LoopQueue { private byte[] _buf; private int _head; private int _tail; private int _size; private int _capacity; public LoopQueue(int capacity){ _capacity原创 2018-02-06 15:18:29 · 264 阅读 · 0 评论 -
最短路径算法 java实现 - Dijkstra
限制: 1. 权值为正 2. 无向算法思想: 1. 三个结构:open集合,closed集合,dist和ps。open保存还没有被的处理节点,closed保存已经处理的节点,dist保持各个节点到目标节点的最短距离,ps保持所有的边。 初始:只有目标节点到目标节点的距离是0,其余是无穷大。 2. 从open集合里面找到距离最短的节点v,放到closed 3. 找到这个节点v的所有到原创 2018-01-09 16:09:25 · 713 阅读 · 1 评论 -
通用 排列组合 java类
实现了两个类Pb Cb,可以分别生成排列和组合。Cb使用方法: 1. 在调用的地方,Cb cb=new Cb(n,k,this);cb.start(); 这个地方表示生成c(n,k)的所有组合。 2. 在调用的类里面,实现Cb_int接口,作为每次一个组合的处理函数。 Cb_int的定义如下: interface Cb_int{ public boolean callbac原创 2018-01-09 14:37:05 · 338 阅读 · 0 评论 -
通用 排列/组合 函数(c++实现)
通用 排列/组合 函数最近在编写小游戏的过程中发现,排列和组合会经常用到,而两个函数如果每次都编写的话,很容易出错。下面是我编写的通用的排列/组合函数使用方法参考代码中的注释#include #include using namespace std;#define SIZE_N 5#define SIZE_K 0/*combination 通用函数使用方法:1.原创 2018-01-04 20:50:09 · 1880 阅读 · 0 评论 -
POJ1068 解题报告
POJ1068 解题报告第一部分是我最初些的,后面的是从另外一个地方copy的; https://www.cnblogs.com/zzhzz/p/5837815.html#include <iostream>#include <string.h>using namespace std;/*S (((()()()))) P-sequence 4 5 6666 W原创 2018-01-03 21:22:06 · 344 阅读 · 0 评论 -
POJ 3295 Tautology解题报告
http://poj.org/problem?id=3295算法主要思路: 1. 获取所有的终结字符(小字符),组合所有的可能性(0或者1); 2. 然后带入到输入的字符串中进行计算 3. 如果所有组合的输出都是真(1),那么就是Tautology;否则是not注意事项: 1. 两个难点,一个是组合的产生;另一个是计算。计算需要从字符串的最后开始朝开始”规约“,直到最后只有一个符号。需要有点原创 2018-01-03 14:43:25 · 60331 阅读 · 0 评论 -
POJ 1753 Flip Game (递归枚举)解题报告
http://poj.org/problem?id=1753算法要点: 对于每个格子,它要么反转0次,要么反转1次(当然,它的邻格子也跟着反转),因为它反转偶数次和反转0次的效果是一样的,同理反转奇数次的效果和反转1次的效果是一样的。 2.由于只有16个格子,我们可以选择0个格子,1个格子,2个格子,3个格子……进行反转,总的选择情况为c(16,0),C(16,1)….C(16,16) 3.当原创 2018-01-02 22:40:39 · 428 阅读 · 0 评论 -
POJ 1001Exponentiation解题报告——求高精度幂
http://poj.org/problem?id=1001/*DescriptionProblems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a t原创 2017-12-31 23:14:37 · 449 阅读 · 0 评论 -
基于lex/yacc,识别出 .h文件中、所有的合法的函数定义
基于lex/yacc,识别出 .h文件中、所有的合法的函数定义包括三个源代码:lex.l: 词法定义yacc.y: 语法定义main.c/main.h: main处理程序lex.lD [0-9]L [_a-zA-Z]A [_a-zA-Z0-9]WS [ \t\v\f]%option noyywrap yylineno%{#include <str...原创 2018-12-11 14:11:37 · 735 阅读 · 0 评论