算法的乐趣
文章平均质量分 74
Jackery_Shh
技术狂!
展开
-
算法之线性插值原理
线性插值法是根据已知两项有关的对应关系资料估算第三项对应的未知资料。什么是线性插值原理,什么是双线性插值简单比方,原来的数值序列:0,10,20,30,40线性插值一次为:0,5,10,15,20,25,30,35,40即认为其变化(增减)是线形的,可以在坐标图上画出一条直线在数码相机技术中,这些数值可以代表组成一张照片的不同像素点的色彩、色度等指标。为了方便理解,转载 2014-11-17 18:03:31 · 7308 阅读 · 0 评论 -
Algorithm One Day One -- 判断链表是否有环(下)
在Is there a loop(上)中,我们判断了一个单向链表有没有环,接下来我们继续探索if有环,环的长度以及环的入口点。限于篇幅,再次不贴完整代码!/******************************************************************** created:2015年1月23日 00:34:45 author: Jackery purpose: Is there a loop ? 《Continue》*************原创 2015-01-23 10:58:07 · 1106 阅读 · 2 评论 -
由strcpy()剖析编程规范
先给出几种实现方式:方式一:char* strcpy(char* des,const char* source) { char* r=des; while((*(des++)=*(source++))!='\0'); return r; }方式二:char * strcpy(char * strDest,const char * strSrc){if ((NULL==strDest) || (NULL==strSrc)) //[1]throw "Invalid argument原创 2015-02-03 15:50:34 · 910 阅读 · 0 评论 -
Algorithm One Day One -- 约瑟夫环(丢手绢问题)
算法是编程的灵魂,是编程思想的精髓————Algorithm One Day One /******************************************************************** created:2015年1月20日 23:06:46 author: Jackery purpose: Joseph problem **************************************************************原创 2015-01-21 11:31:32 · 2897 阅读 · 5 评论 -
高斯平滑 高斯模糊 高斯滤波器 ( Gaussian Smoothing, Gaussian Blur, Gaussian Filter ) C++ 实现
发展到现在这个平滑算法的时候, 我已经完全不知道如何去命名这篇文章了, 只好罗列出一些关键字来方便搜索了.在之前我们提到过了均值滤波器, 就是说某像素的颜色, 由以其为中心的九宫格的像素平均值来决定. 在这个基础上又发展成了带权的平均滤波器, 这里的高斯平滑或者说滤波器就是这样一种带权的平均滤波器. 那么这些权重如何分布呢? 我们先来看几个经典的模板例子:原创 2015-02-05 11:30:02 · 1659 阅读 · 0 评论 -
多边形区域填充算法--扫描线种子填充算法
1.3扫描线种子填充算法 1.1和1.2节介绍的两种种子填充算法的优点是非常简单,缺点是使用了递归算法,这不但需要大量栈空间来存储相邻的点,而且效率不高。为了减少算法中的递归调用,节省栈空间的使用,人们提出了很多改进算法,其中一种就是扫描线种子填充算法。扫描线种子填充算法不再采用递归的方式处理“4-联通”和“8-联通”的相邻点,而是通过沿水平扫描线填充像素段,一段一段地来处理“4转载 2015-02-10 18:59:07 · 2828 阅读 · 1 评论 -
平衡二叉树(AVL)
平衡二叉树(Balanced binary tree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树。定义:平衡二叉树或为空树,或为如下性质的二叉排序树: (1)左右子树深度之差的绝对值不超过1; (2)左右子树仍然为平衡二叉树. 平衡因子BF=左子树深度-右子树深度.原创 2015-02-02 10:53:07 · 1747 阅读 · 1 评论 -
Algorithm One Day One -- 判断链表是否有环(上)
Is a loop ? Question descrip as follows : Assume that wehave a head pointer to a link-list. Also assumethat we know the list is single-linked. Can you come up an algorithm to checkwhether this link list includes a loop by using O(n) time and O(1)原创 2015-01-22 10:31:08 · 948 阅读 · 0 评论 -
Algorithm One Day One--求输入的数组其子数组的最大值
算法是编程的灵魂,是编程思想的精髓————Algorithm One Day One原创 2015-01-20 11:16:04 · 1095 阅读 · 0 评论 -
编译器? 求解两数运算?
这个问题也不算新鲜了,换一种方式提问就是"如何不用 + - * / 运算符,来求解两元素之和"的问题;大家很自然的回想起利用位运算。在数字电路中,我们都遇到过设计“加法器”的问题,利用位与、或、非、异或可以很轻松的解决此问题;这里,不用此方式,而是借助编译器的地址偏移,来解决问题。基本思路如下:(1)将其中int型数据转为地址(或者说是一个数组的首地址)(2)然后利用数组下角标索引,进行地址偏移,获取偏移后的address(3)将(2)中得到的地址转换为int类型下面贴出code,几行的事儿,但可原创 2015-08-26 10:50:28 · 993 阅读 · 0 评论 -
哈希表算法实现
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.环境:主机:WINXP开发环境:MINGW说明:本程序建立的哈希表示意图:哈希函数为对哈希表长取余源代码:[cpp] view plaincopy/*****************转载 2014-10-16 16:00:21 · 917 阅读 · 0 评论 -
线性插值之双线性插值与三线性插值
转自:http://www.legalsoft.com.cn/docs/docs/17/267.html当你做纹理映射的时候,是否经常会注意到屏幕上显示出的那些明显锯齿,而且你用的纹理像素化得太明显了?现在,我们将谈论如何来解决这个问题,而我们使用的方法就是对你的纹理进行滤波。下面我们将介绍几种常用的滤波方法,最后再详细介绍双线性插值滤波的具体实现。Bi-linear Inte转载 2014-12-03 16:51:00 · 1301 阅读 · 0 评论 -
算法研发----千里之行始于足下
有些事情,写出来真会有种豁然开朗之感。比如下边的内容:相对路径与绝对路径在VS的项目中,在查找头文件顺序是,首先查找当前目录也就是my.vcproj目录的文件,然后再查找配置路径incude所包含的文件,在引用头文件的地方,头文件的内容会在相应的地方展开;./ 当前路径;../当前路径的父路径;../../当前路径的父路径的父路径;原创 2014-12-03 16:57:45 · 1024 阅读 · 0 评论 -
向量的点积与叉积回顾
向量是3D图形处理、图像处理的基础;在这里,我们回顾一下基本的支持:向量的数量积和向量积:原创 2015-04-25 10:52:41 · 2224 阅读 · 0 评论 -
队列 - C语言实现(摘自数据结构与算法分析 C语言描述)
一、概述:像栈一样,队列(queue)也是表。然而,使用队列时插入在一端进行而删除在另一端进行。队列的基本操作是Enqueue(入队),它是在表的末端(叫做队尾(rear)插入一个元素,还有Dequeue(出队),它是删除(或返回)在表的开头(叫做队头(front)的元素。如图1所示显示一个队列的抽象模型。图1 队列模型二、实现如同栈的情转载 2014-12-18 09:59:57 · 953 阅读 · 1 评论 -
梯度、散度和旋度及在图像处理中的应用(图像融合)
对于有些人,看这些枯燥的公式符号是件痛苦的事情;但痛苦后总会有所欣喜,如果你充分利用它的话,你更能体会到他的美妙;先来几张效果图,激发你学习数学的欲望: 注释:图像融合效果,分别应用了不同的算法在图像图形处理中, 梯度、散度和旋度 有很重要的作用,比如图像修复中的解泊松方程,目标跟踪等等,可以说是他们无处不在。来句废话:可能有些人,对于数学符号里面倒三角 正三角 符号的意思?与读法感到迷惑,现稍作解释;△二次函数根的判别式或者指三角形▽读Nabla,奈原创 2015-02-11 18:57:48 · 8356 阅读 · 2 评论 -
冒泡排序、选择排序、堆排序、快速排序、插入排序算法复杂度分析与算法实现(自己总结与转)
1、冒泡算法:这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡:C/C++ code?1234567891011121314151617181920原创 2014-09-04 17:20:41 · 3333 阅读 · 3 评论 -
算法基础之微积分--线性代数--离散数学
最近在实施算法的时候,感觉数学知识不足了,在此大补一哈--------------------------------------------------微积分----------------------------------------------------------微积分公开课:麻省理工学院:单变量微积分http://ocw.mit.edu/courses/mathematics/18-01sc-single-variable-calculus-fall-2010/http原创 2015-03-13 10:53:48 · 4462 阅读 · 0 评论 -
怎么理解 64x64x64 3D LUT?
开始的的理解是RGB每个分量都分为64级,这样的查找表的数据应该是64x64x64个。但是最新的LUT升级文件中查找表的数据为4913个这又和最常用的17x17x17的3D LUT是一致的。请问怎么理解64x64x64 3D LUT呢?1. 关于3D LUT比较常用的是立方体分割法,以下图为例,就是把色彩空间划分成八个立方体,坐标轴一般为RGB,每一个边分割为两段三个节点,这就转载 2014-12-15 18:20:03 · 4464 阅读 · 0 评论 -
Conjugate gradient method(共轭梯度算法)
Conjugate gradient methodIn mathematics, the conjugate gradient method is an algorithm for the numerical solution of particular systems of linear equations, namely those whose matrix is symmetric and转载 2015-09-15 15:17:55 · 5254 阅读 · 0 评论