算法

  • Java 使用AES/CBC/PKCS7Padding 加解密字符串

    Java 使用AES/CBC/PKCS7Padding 加解密字符串 2015-05-07

    介于java 不支持PKCS7Padding,只支持PKCS5Padding 但是PKCS7Padding 和 PKCS5Padding 没有什么区别 要实现在java端用PKCS7Padding填充,需要用到bouncycastle组件来实现 所以需要一个jar 来支持.bcprov-jdk16-139.jar 下载地址:http://www.bouncycastle.org/archive/139/bcprov-jdk16-139.jar 废话不说了,下面上代码 加解密类 /** * * @

    关键词: cbc, aes, pkcs, 算法
  • 样条插值(Spline)

    样条插值(Spline) 2015-05-06

    薄板样条插值(Thin-plate Spline) 薄板样条函数建立一个通过控制点的面,并使所有点的坡度变化最小.换句话,薄板样条函数以最小曲率面拟合控制点.薄板样条函数的估计值由下式计算: 式中,x和y为要被插值得点的x.y坐标:di^2为(x,y)和(xi,yi)距离平方,xi.yi分别为控制点i的x.y坐标. 薄板样条函数包括两个部分:(a+bx+cy)表示局部趋势函数,它与线性或一阶趋势面具有相同的形式,前一部分 表示基本函数,可获得最小曲率的面.相关系数Ai,a.b.c由以下线性方程组

    关键词: 算法, 插值, 样条插值
  • 斗地主算法的设计与实现(六)--项目源码和说明

    斗地主算法的设计与实现(六)--项目源码和说明 2015-05-03

    本篇将给出斗地主算法的源码,介绍斗地主这个项目的一些基本情况. 下载地址:http://download.csdn.net/detail/fansunion/6387589 特别说明:斗地主项目的主要实现了,斗地主中的洗牌.发牌.判断牌型.排序等一系列算法,但这并不是一个完整的项目. 界面操作部分,功能很有限,仅供参考,有兴趣的同学自行完善. 项目结构 项目截图 新手容易遇到的一个问题 引入以下2个类会报错误 import sun.audio.AudioPlayer; import sun.au

    关键词: 源码, 游戏, 算法, 开源项目, 斗地主
  • 斗地主算法的设计与实现(三)--如何比较两手牌的大小

    斗地主算法的设计与实现(三)--如何比较两手牌的大小 2015-05-03

    本篇主要讲解斗地主中如何比较两手牌的大小. 友情提示:本篇是接着以下两篇文章就讲解的,建议先看看下面这2篇. 斗地主算法的设计与实现--如何判断一手牌的类型(单,对子,三不带,三带一,四代二等) 斗地主算法的设计与实现--项目介绍&如何定义和构造一张牌 牌型比较 火箭最大:炸弹次之:再次是一般牌型(单牌.对牌.三张牌.三带一.单顺.双顺.三顺.飞机带翅膀.四带二) 一般牌型:只有牌型且张数相同的牌才可按牌点数比较大小. 其中三带一.飞机带翅膀.四带二组合牌型,比较其相同张数最多的牌点数大小. 1

    关键词: 游戏, 算法, 斗地主, 棋牌, 项目研发
  • Struts2技术内幕--经典语录

    Struts2技术内幕--经典语录 2015-05-03

    1.面对这些框架,大家是否真的思考过,我们为什么要学习这些框架?这些框架到底从何而来?框架的本质到底是什么? 使用框架,又能够为我们的开发带来什么样的好处呢?在深入分析Struts2及其源码之前,我们首先必须弄清楚这些比框架 更为核心的问题.因为只有了解了为什么,我们才能知道怎么做,知道如何才能做得更好. 2.当我们加载一个JAR包到Classpath时,实际上是获得了JAR包中所有对JDK的额外支持. 3.框架只是一个JAR包而已,其本质是对JDK的功能扩展. 4.框架是一组程序的集合,包含了

    关键词: struts, jar, 算法, 数据结构, 框架
  • 中国象棋程序的设计与实现(六)--N皇后问题的算法设计与实现(源码+注释+截图)

    中国象棋程序的设计与实现(六)--N皇后问题的算法设计与实现(源码+注释+截图) 2015-05-03

    八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题. 该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. 高斯认为有76种方案.1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果. 计算机发明后,有多种方法可以解决此问题. 2010年,在写完中国象棋的核心模块后,当时添加了一个扩展应用模块,N皇后问题. 效果图 算法源码 下面是

    关键词: 算法, 回溯, 中国象棋, 八皇后, 皇后
  • ExcelToHtmlTable转换算法:将Excel转换成Html表格并展示(项目源码+详细注释+项目截图)

    ExcelToHtmlTable转换算法:将Excel转换成Html表格并展示(项目源码+详细注释+项目截图) 2015-05-03

    功能概述 Excel2HtmlTable的主要功能就是把Excel的内容以表格的方式,展现在页面中. Excel的多个Sheet对应页面的多个Tab选项卡. 转换算法的难点在于,如何处理行列合并,将Excel的行列合并模型转换成Html表格的行列合并模型. 背景故事 因实际需要,需要将Excel展现在Web界面中. 最初,想在网上找开源的东东,结果没有1个是想要的.有的特别复杂,有的只能在Windows平台,需要闭源的dll,最终还是得靠自己. 人不逼迫自己,真是想偷懒,不能出成果. 要是不是自

    关键词: 算法, excel, html, 报表, 行列合并
  • 斗地主算法的设计与实现(五)--洗牌和发牌

    斗地主算法的设计与实现(五)--洗牌和发牌 2015-05-03

    本篇简要介绍如何洗牌和发牌. 这2个算法都很简单,有兴趣的同学可以写得更好一点. 关键点说明 a.洗牌算法的思路就是,构造54张牌,打乱牌N次,这个算法可能不够随机. b.发牌算法的思路就是,从洗好的牌中,按规律发给3个玩家,比如1好玩家就取第1.4.7等17张牌. c.3个玩家,谁取到id为1的这张牌,谁就是"地主". 1.初始化 /** * 初始化 */ private void deal() { shuffle(); divide(); } 2.洗牌 /** * 洗牌 */ pr

    关键词: 游戏, 算法, 斗地主, 洗牌, 发牌
  • 设计模式实战13--行为型--策略模式

    设计模式实战13--行为型--策略模式 2015-05-03

    策略模式(Strategy)定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换. 策略模式让算法独立于使用它的客户而独立变化. 策略模式结构图: 策略模式解析: Context(应用场景): 1.需要使用ConcreteStrategy提供的算法. 2. 内部维护一个Strategy的实例. 3. 负责动态设置运行时Strategy具体的实现算法. 4.负责跟Strategy之间的交互和数据传递. Strategy(抽象策略类): 1. 定义了一个公共接口,各种不

    关键词: classloader, 算法, String, 设计模式, class, Properties
  • 简洁常用权限系统的设计与实现(一):构造权限菜单树的N(N =4)种方法

    简洁常用权限系统的设计与实现(一):构造权限菜单树的N(N =4)种方法 2015-05-03

    权限系统,Web开发常见标准子系统之一.结合自己的一些思考和实践,从本篇开始权限系统的设计与实现之路. 最近,重构了项目的权限菜单构造过程,向前端返回json格式的权限树. 这一篇,只是大致介绍下这个问题,并给出4种方法的整体思路,后续再分别详细介绍这4种方法,再往后介绍完整的权限系统的设计与实现. 权限表的结构: acl.parent_acl, 最重要的就是这2个字段,有了这2个字段,就可以构造一棵树了. 前端需要的json格式: "data":[{ "acl":

    关键词: 算法, Web开发, 权限, , 权限系统
  • 预排序遍历树算法的图文解释

    预排序遍历树算法的图文解释 2015-04-28

    这个算法有如下几个数据结构 1 lft 代表左 left 2 rgt 代表右 right 3 lvl 代表所在的层次 level 下面这个图是一个典型的结构 我们先看一些使用方法 1 查看整个树(A)有多少节点(包含自己) 直接看根节点就行了 (right-left+1)/2 = (20-1+1)/2 = 10 这个数有10个节点 2 查看从节点A到E的路径 select * from tree where lft between 1 and 6 and rgt between 7 and 20

    关键词: algorithm, traversal, tree, 算法, 预排序遍历树, modified, preorder
  • 一致性hash算法 - consistent hashing

    一致性hash算法 - consistent hashing 2015-04-21

    一致性 hash 算法( consistent hashing ) consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在cache 系统中应用越来越广泛: 1 基本场景 比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 hash 值,然后均匀的映射到到 N

    关键词: memcache, 算法, Cache, 一致hash
  • 中国象棋程序的设计与实现(十)--棋盘的定义和绘制

    中国象棋程序的设计与实现(十)--棋盘的定义和绘制 2015-04-13

    本篇简要介绍棋盘类的定义.棋盘的关键属性.棋盘绘制算法的骨架. 棋盘的详细绘制算法等内容,我们将在接下来的几篇进行详细介绍. 棋盘类的定义 public abstract class ChessBoard extends JPanel 棋盘是一个继承自JLabel的图形界面组件,当在界面展示,看起来比较美观. 细心的读者注意到,abstract表明 这是一个抽象类. 本中国象棋程序,实现了联网对战.残局打谱.全局打谱.人机对弈等多种形式的功能. 不同的功能,它们所对应的棋盘有一些差别,因此,将共

    关键词: 算法, 中国象棋, 画图, Graphics, 棋盘
  • 简洁常用权限系统的设计与实现(五):不维护节点的深度level,手动计算level,构造树

    简洁常用权限系统的设计与实现(五):不维护节点的深度level,手动计算level,构造树 2015-04-13

    这种方式,与第三篇中介绍的类似. 不同的是,数据库中不存储节点的深度level,增加和修改时,也不用维护. 而是,在程序中,实时去计算的. 至于后面的,按照level升序排序,再迭代所有的节点构造树,与第三篇中的方法,完全一样. 因此,本篇和下一篇,只介绍如何计算level,不再介绍后面的具体实现了. 计算level,采用递归方式. // 计算所有节点的level public static List<Map<String, Object>> caculateLevel( List

    关键词: 算法, 数据结构, 递归, , 迭代
  • 斗地主算法的设计与实现(一)--项目介绍&如何定义和构造一张牌

    斗地主算法的设计与实现(一)--项目介绍&如何定义和构造一张牌 2015-04-13

    大学期间,我在别人的基础上,写了一个简易的斗地主程序. 主要实现了面向对象设计,洗牌.发牌.判断牌型.比较牌的大小.游戏规则等算法. 通过这个斗地主小项目的练习,提高了我的面向对象设计能力,加深了对算法的理解. 最近把这些设计和算法分享给大家,过些天会上传斗地主程序的源码. 项目截图 定义一张牌Card a.一张牌的类型 // 一张牌的大类型 public enum CardBigType { HEI_TAO, HONG_TAO, MEI_HUA, FANG_KUAI, XIAO_WANG, D

    关键词: 游戏, 算法, 面向对象, 斗地主, 棋牌
  • Web开发之分页算法,N(N =3)种解决方案

    Web开发之分页算法,N(N =3)种解决方案 2015-04-13

    在Web开发中,分页是最常用的一个功能了.但是,想简单.灵活.方便地解决分页这个问题,还是需要动点脑筋的. 今天,简要梳理下,过去6年中,亲自遇到的分页问题和解决办法. 1. 定义问题 原由:在页面中需要展示若干数据,但不可能一次展示所有的,想通过每次只展示若干条.分页数,pageNo,是为了标记,当前访问的内容在哪里. 后端需要做的:后端需要分页查询数据,把数据返回给前端 前端需要做的:根据后端的数据,构造"1.2.3"等分页面板,并且要响应事件,比如点击"2",

    关键词: 算法, 分页, 前端框架
  • 简洁常用权限系统的设计与实现(六):不维护节点的深度level,手动计算level,构造树 (把一颗无序的树,变成有序的)

    简洁常用权限系统的设计与实现(六):不维护节点的深度level,手动计算level,构造树 (把一颗无序的树,变成有序的) 2015-04-13

    本篇介绍的方法,参考了网上的代码. 在递归过程中,计算level,是受到了这种方法的启发. CSDN上有篇关于树的算法,目标是把一个无序的树,变成有序的. 我看了下代码,并运行了下,感觉是可行的. 我在想,既然可以把一棵树完整的遍历下来,那么应该可以知道每个节点的深度level.尝试了下,证明可行. 但是,我最终对比本篇的方法,和第5篇中的方法,基本一致.不同的地方是,这篇保存了遍历的顺序,实现了把无序的树变成有序的. 之所以第5篇和第6篇,分成2篇,是因为我自己原创的和借鉴别人的,还是分开比较

    关键词: 遍历, 算法, 数据结构, 递归,
  • java多线程学习-java.util.concurrent详解(二)Semaphore/FutureTask/Exchanger

    java多线程学习-java.util.concurrent详解(二)Semaphore/FutureTask/Exchanger 2015-04-09

    前一篇文章 我们学习了java.util.concurrent的CountDownLatch和CyclicBarrier 今天我们继续共同来探讨其他的多线程组件 ----------------------------------------------------------------------------- 3. Semaphore 我们先来学习一下JDK1.5 API中关于这个类的详细介绍: "一个计数信号量.从概念上讲,信号量维护了一个许可集.如有必要,在许可可用前会阻塞每一个 ac

    关键词: Java, 算法, 多线程, Thread, Exchange
  • [006][JVM--垃圾收集器总结]

    [006][JVM--垃圾收集器总结] 2015-03-19

    JVM--垃圾收集器总结 垃圾收集器概览 收集算法是内存回收的方法论,垃圾收集据是内存回收的具体实现.Java虚拟机规范中对垃圾收集器应该如何实现没有规定,不同的厂商.不同版本的虚拟机所提供的垃圾收集器可能会有很大差别,一般都会提供参数供用户根据自己的所用特点和要求组合出各个年代所使用的收集器.下面是基于JDK 1.7 Update 14 之后的HotSpot 虚拟机垃圾收集器.如果两个收集器之间有连线就说明它们可以搭配使用.直到现在还没有最好的收集器,更加设有万能的收集器,只是对具体应用选择最

    关键词: jvm, cms, 算法, 垃圾收集器
  • 常见的排序算法及其java实现

    常见的排序算法及其java实现 2015-03-14

    概括 排序大的分类可以分为两种:内排序和外排序.在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序.下面讲的排序都是属于内排序. 内排序有可以分为以下几类: (1).插入排序:插入排序.希尔排序. (2).选择排序:选择排序.堆排序. (3).交换排序:冒泡排序.快速排序. (4).归并排序 (5).基数排序 时间复杂度.空间复杂度以及稳定性如下表: 相关概念 时间复杂度:算法的时间复杂度是一个函数,它定量描述了该算法的运行时间. (1)时间频度 一个算法执

    关键词: Java, 算法, 时间复杂度, 稳定性, 空间复杂度
  • [原创]八皇后问题

    [原创]八皇后问题 2015-03-13

    八皇后问题是一个经典的问题了.需求自行搜索 先上git库 https://git.codeweblog.com/jasonbu/queen.git 需求分解: 1.根据需要,N皇后总共有N*N个点可以尝试 2.根据要求,每行,每列,还有两条45度的斜线都不允许有重复的皇后存在 3.要求算出所有的可能性,如果有可能,保存所有的可能性 大致思路就是: 1.列优先,行其次,如果当前坐标安全,则判定下一列有没有安全的坐标. 2.如果当前列穷举完成,回溯 3.如果当前完成的列是第一列,则整个运算完成 代码

    关键词: 算法, 八皇后
  • 算法小论--第三章 又把新桃换旧符

    算法小论--第三章 又把新桃换旧符 2015-02-21

    笔记 这一章主要是渐进记号和高中数学的回忆. 几个标记: Θ – 上界和下界,绑定值,相当于f(n) ∈ [c1 * g(n), c2 * g(n)] Ω – 闭区间下界,最好运行时间,相当于 f(n) ∈ [c * g(n), ∞) ω – 开区间下界,最好运行时间,相当于 f(n) ∈ (c * g(n), ∞) Ο – 闭区间上界,最差运行时间,相当于 f(n) ∈ [0, c * g(n)] ο – 开区间上界,最差运行时间,相当于 f(n) ∈ [0, c * g(n)) 其余部分,高

    关键词: 算法, 算法导论, 算法小论
  • 快速排序(JAVA)

    快速排序(JAVA) 2015-01-29

    package org.rev.algorithm; /** * 快速排序 算法复杂度Ο(n log n) * * 1.挑出一个基准数据. * * 2.给数列排序,大于基准数据的放在右边,小于基准数据的放在左边. * * 3.递归地,对小于基准数据的子数列和大于基准数据的子数列排序. */ public class QuickSort { public static void main(String[] args) { int[] data = {39, 38, 55, 97, 86, 37,

    关键词: quicksort, 算法, 快速排序
  • 设计模式之Template

    设计模式之Template 2015-01-27

    ? Template模板模式定义: 定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中. 使用Java的抽象类时,就经常会使用到Template模式,因此Template模式使用很普遍.而且很容易理解和使用. ? public abstract class Benchmark { public abstract void benchmark(); public final long repeat (int count) { if (count <= 0) return 0; else {

    关键词: 算法, 设计模式
  • 设计模式之Strategy(策略)

    设计模式之Strategy(策略) 2015-01-27

    ? Strategy策略模式是属于设计模式中对象行为型模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类. Stratrgy应用比较广泛,比如, 公司经营业务变化图, 可能有两种实现方式,一个是线条曲线,一个是框图(bar),这是两种算法,可以使用Strategy实现. 这里以字符串替代为例, 有一个文件,我们需要读取后,希望替代其中相应的变量,然后输出.关于替代其中变量的方法可能有多种方法,这取决于用户的要求,所以我们要准备几套变量字符替代方案. 首先,我们建立一个抽象类RepTem

    关键词: 算法, 设计模式
  • 一个优秀的Java程序员必须了解的GC机制

    一个优秀的Java程序员必须了解的GC机制 2015-01-27

    一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的性能.本文将从GC的工作原理.GC的几个关键问题进行探讨,最后提出一些Java程序设计建议,如何从GC角度提高Java程序的性能. GC的基本原理 GC是什么? 为什么要有GC呢? GC是垃圾收集的意思(Garbage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内

    关键词: jvm, Java, 算法, 嵌入式, 网络应用
  • 设计模式(Patterns)

    设计模式(Patterns) 2015-01-27

    ?A. 创建模式 设计模式之Factory(工厂模式) 使用工厂模式就象使用new一样频繁. 设计模式之Prototype(原型模式) 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 设计模式之Builder 汽车由车轮 方向盘发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,Builder模式就是将这两种情况分开进行. 设计模式之Singleton(单态模式) 保证一个类只有一个实例,并提供一个访问它的全局访问点 ? B.结构模式 设计模式之Facade 可扩

    关键词: 编程, 算法, 设计模式, 数据结构, 制造
  • 阿里巴巴2013年算法笔试题

    阿里巴巴2013年算法笔试题 2015-01-10

    考试相关信息 今天去清华大学参加算法工程师的笔试,这次阿里巴巴的校园招聘在北京有好多个点,这次笔试就有以下几个考点(通知考试时收到的信息) 研发工程师:北京大学.北京邮电大学.北京航空航天大学.中国科学院大学(中关村校区) 算法工程师:清华大学 测试工程师:中国科学院大学(中关村校区) 系统工程师.安全工程师:北京航空航天大学 扫描了一下参加考试的同学,大概有50多人,其中一部分人是考研发工程师的(虽然收到的通知清华只有算法工程师,但实际考评时还是有研发工程师),那么剩下我估计只有二三十左右人考

    关键词: 算法, 面试题, 阿里巴巴, 校园招聘
  • 24点游戏算法

    24点游戏算法 2015-01-10

    24点游戏算法 现在我们在做一个24点的小游戏,我主要负责算法部分,前面有章博客已经讲解了加括号的四则表达式的计算算法,现在要解决就是24点的算法. 24点游戏的说明: 54张牌去掉大小王2张牌,剩余52张.任意发1-K之间的4个张牌(也就是有1-13的四个数字),用+-*/()连结成算式,使得式子的计算结果为24. 算法描述 24点的算法还处比较复杂的,网上有各种别人写的现成代码,大部分都写的不太好. 主要的思想是:穷举法,列举出所有4个数字+3个运算符+括号的组合:在计算的过程利用剪枝把一些

    关键词: 算法, 24点
  • 表达式(四则运算)计算的算法

    表达式(四则运算)计算的算法 2015-01-10

    表达式(四则运算)计算的算法 戏剧前奏--基本知识点 通常我们所看到的算术表达式,运算符总是在两个操作数中间(除),如(A+B)*C,这样的表达式叫做中缀表达式.这种表达式不同的运算符优先级不同,而且通常含有括号,计算机很难理解这种表达式.在编译系统中,要把人易于理解的表达式翻译成能正确求值的机器指令.编译系统中对中缀形式的算术表达式的处理方式是: 先把中缀表达式转换成后缀表达式,再进行计算. 后缀表达式就是表达式中的运算符出现在操作数的后面,并且不含括号,如AB+C*.后缀表达式的特点: (1

    关键词: 算法, 四则运算, 表达式计算
  • 图像的放大与缩小(3)--双立方插值算法

    图像的放大与缩小(3)--双立方插值算法 2015-01-10

    -----------------------------转载自jia20003的博客" 图像放缩之双立方插值" ----------------------------------- 一:数学原理 如果已知一个函数f(x)以及它在x=0,x=1处的导数,那么函数可以在[0,1]之间插值,当函数 表达为三次多项式时我们称之谓立方插值.一个三次多项式及其导数: f(x) =ax^3 +bx^2 + cx + d f'(x)=3ax^2 + 2bx +c 多项式在x=0, x=1处值及其导

    关键词: each, input, 算法, String, class, float
  • Google 以图搜图 - 相似图片搜索原理 - Java实现

    Google 以图搜图 - 相似图片搜索原理 - Java实现 2015-01-10

    转载自luohong722的博客:http://blog.csdn.net/luohong722/article/details/7100058 前阵子在阮一峰的博客上看到了这篇<相似图片搜索原理>博客,就有一种冲动要将这些原理实现出来了. Google "相似图片搜索":你可以用一张图片,搜索互联网上所有与它相似的图片. 打开Google图片搜索页面: 点击使用上传一张angelababy原图: 点击搜索后,Google将会找出与之相似的图片,图片相似度越高就越排在前面.

    关键词: google, algorithm, Java, 算法, 图像处理, html
  • 动态规划的用法--01背包问题

    动态规划的用法--01背包问题 2015-01-10

    动态规划的用法--01背包问题 问题主题:著名的01背包问题 问题描述: 有n个重量和价值分别为wi.vi的物品,现在要从这些物品中选出总重量不超过W的物品,求所有挑选方案中的价值最大值. 限制条件: 1<=N<=100 1<=wi .vi<=100 1<=wi<=10000 样例: 输入 N=4 W[N] = {2, 1, 3, 2} V[N] = {3, 2, 4, 2} 输出 W = 5(选择0,1,3号) [解法一] 解题分析: 用普通的递归方法,对每个物品是否

    关键词: 算法, 动态规划, 程序设计
  • 看起来像它--图像搜索其实也不难

    看起来像它--图像搜索其实也不难 2015-01-10

    这是我第一次翻译外文文章,如果翻译的不好,还望大家多包含!以下黑色部分是作者原文的翻译,红色部分是我本人自己的理解和对其的补充. 原文:Looks Like It 在google里对的搜索结果是 下面是我用pHash算法(java)实现的结果: 十张比较的图如下: source: f0a0000030400000 1-5 2-5 3-0 4-5 5-5 6-5 7-5 8-7 9-6 10-3 11-5 f0a0000030400000是原图片的指纹数 下面的一行"a-b"型的数据,a

    关键词: 算法, 图片搜索, 图像识别, pHash, 图像搜索
  • 贪心算法--字典序最小问题

    贪心算法--字典序最小问题 2015-01-10

    贪心算法--字典序最小问题 问题主题:字典序最小 问题描述: 给定长度为N的字符串S,要构造一个长度为N字符串T.T是一个空串,反复执行下列任意操作: l 从S的头部删除一个字符,加到T的尾部: l 从S的尾部删除一个字符,加到T的尾部: 目标是要构造字典序尽可能小的字符串T. 限制条件: 1<=N<=2000 字符串都在大写字符 样例: 输入 N=8 ADHCACBD 输出 ADBCACDH 解题分析: 看到这个问题,首先你肯定不难想到:每次都从S的头部或尾部选择最小的字符放到T的尾部 对,

    关键词: 算法, 程序设计, 贪心
  • 贪心算法--找纸币问题

    贪心算法--找纸币问题 2015-01-10

    贪心算法--找纸币问题 问题主题:找钱 问题描述: 假设有1元.2元.5元.10元.20元.50元.100的纸币分别为c0, c1, c2, c3, c4, c5, c6,张.现在要用这些钱来支付K元,至少要用多少张纸币?如果能找,则输出纸币的张数,不能找则输出No 限制条件: 0<=c0, c1,c2,c3,c4,c5,c6<=109 0<=K<=109 样例: 输入 C0=3, c1=0, c2=2, c3=1, c4=0, c5=3, c6=5 输出 6 [解法一] 解题分析

    关键词: 算法, 贪心算法, 程序设计
  • MP3解码之哈夫曼解码快速算法

    MP3解码之哈夫曼解码快速算法 2015-01-04

    哈夫曼(huffman)解码用查表法,数据组织采用树形结构,若采用二叉树,一次处理一位(bit),效率是比较低的.从一些杂志上看到关于哈夫曼(huffman)解码的快速算法介绍,直接用位流索引一次处理N(4<N<=32)位,这种方法实际上是不可行的,原因是构造出的码表很长,如果一次处理8位,可以编写程序构造出码表,不过可以肯定的是码表的长度会超过我们事先的想象,以至于没有多大的实用价值.一次处理多位(一位以上)码表中冗余度很大导致码表很长. MP3解码处理主数据(main_data)的第一步就

    关键词: 编程, 算法, 数据结构
  • (十三)用JAVA编写MP3解码器--IMDCT快速算法

    (十三)用JAVA编写MP3解码器--IMDCT快速算法 2015-01-04

    解码一帧Layer3第7步:IMDCT和子带混合 -- class Layer3内的hybrid方法 这一步可细分为3个步骤: 1.初始化加窗系数floatWinIMDCT[][] 初始化floatWinIMDCT[][]时直接代入相关公式,我这事先另外编程用公式把加窗系数计算出来,供程序中直接查表使用,而不是运行时进行初始化.初始化floatWinIMDCT[][]的代码正好还留着,就顺便贴出来: public class InitIMDCT { public static void main

    关键词: Java, 编程, 算法
  • MP3解码之DCT快速算法的展开(旧)

    MP3解码之DCT快速算法的展开(旧) 2015-01-04

    MP3解码的最后一步是"多相合成滤波",多相合成滤波算法见ISO/IEC 11172-3 ANNEX_B Figure 3-A.2,经过5个步骤,将输入序列X[0..31]的32个采样值,变换为32个PCM样本输出: // ①Shift 64 to 1024 FIFO for i = 64 to 1023 V[i] = V[i-64] // ②Calculate 64 values V[i] by matrixing for i = 0 to 63 for k = 0 to 31 V[

    关键词: 算法
  • (一)用JAVA编写MP3解码器--前言

    (一)用JAVA编写MP3解码器--前言 2015-01-04

    [内容提要] <用JAVA编写MP3解码器>系列文章将对JAVA实现MP3解码的技术细节作介绍,本着开源的精神,文中给出完整的MPEG 1.0/2.0/2.5 Audio Layer I/II/III 解码的JAVA源代码.在哈夫曼解码.逆量化和重排序.多相合成滤波等模块中采用了卓有成效方法来提高程序运行效率:采用了IMDCT.DCT经典的快速算法,根据自己对算法的理解编写代码,对快速算法有详细的推导和说明:整个程序采用模块化设计,程序结构比较清晰.即使你之前对JAVA语言不太熟悉,由于JAV

    关键词: blog, svn, Java, 编程, 算法
  • (十八)用JAVA编写MP3解码器--迷你播放器

    (十八)用JAVA编写MP3解码器--迷你播放器 2015-01-04

    1.定义解码一帧的接口 ILayer123 Layer1.Layer2和Layer3这三个类都实现了ILayer123的decodeFrame方法. // ILayer123.java package jmp123.decoder; public interface ILayer123 { public void decodeFrame(int intFirstChannel, int intLastChannel) throws Exception; } 2.封装解码器 对帧头解码之后可以知道

    关键词: google, Java, 算法, 多线程, 网络协议
  • MP3解码之DCT(32→64)快速算法的展开

    MP3解码之DCT(32→64)快速算法的展开 2015-01-04

    MP3解码的最后一步是"多相合成滤波",多相合成滤波算法见ISO/IEC 11172-3 ANNEX_B Figure 3-A.2,经过5个步骤,将输入序列X[0..31]的32个采样值,变换为32个PCM样本输出: // ①Shift 64 to 1024 FIFO for i = 64 to 1023 V[i] = V[i-64] // ②Calculate 64 values V[i] by matrixing for i = 0 to 63 for k = 0 to 31 V[

    关键词: 算法
  • (十四)用JAVA编写MP3解码器--多相合成滤波

    (十四)用JAVA编写MP3解码器--多相合成滤波 2015-01-04

    解码一帧Layer3第8步:多相频率倒置 (Inverse Quantize Samples) 也可以称为频率倒相(Frequency Inversion),在数据进入多相滤波器前进行频率倒相,把奇数序号子带的奇数号样本乘上-1,这样做的目的是校正多相滤波器组对频率的倒相.为了充分利用decodeFrame方法内的循环,把这部分简短的代码放进decodeFrame内. 解码一帧Layer3第9步:多相合成滤波 (Poly Phase Synthesis Filterbank) 多相合成滤波是调用

    关键词: Java, 算法, 音乐
  • (十一)用JAVA编写MP3解码器--立体声处理

    (十一)用JAVA编写MP3解码器--立体声处理 2015-01-04

    解码一帧Layer3第5步:立体声处理 -- class Layer3的ms_stereo和i_stereo方法 MP3采用的立体声编码方式有中侧立体和强度立体声两种. 1.中侧立体声(Middle/Side stereo)简称MS_stereo,在这种模式中,用中/侧声道规格化值Mi/Si取代左/右声道的值Li/Ri,重建左/右声道的值Li/Ri用下述公式: 变换前Mi值在左声道,Si值在右声道.应用上述公式把Mi/Si频谱值变换为Li/Ri并放到左/右声道,就完成了中侧立体声解码. 2.强度

    关键词: Java, 算法, 音乐
  • (八)用JAVA编写MP3解码器--解码增益因子

    (八)用JAVA编写MP3解码器--解码增益因子 2015-01-04

    解码一帧Layer3第2步:解码增益因子 -- getScaleFactors_1()和getScaleFactors_2()方法 增益因子(Scale Factor)数据存储在帧内的主信息中.主信息包含增益因子和用哈夫曼编码的主数据(main_data).增益因子简单讲就是逆量化公式的指数中的一个因子.手册中解码主数据的伪码算法如下,其中MPEG 1.0由ISO/IEC 11172-3给出,MPEG 2.0由ISO/IEC 13818-3给出.官方并没有MPEG2.5这个版本,这个版本是民间版

    关键词: Java, 算法, 数据结构
  • (十二)用JAVA编写MP3解码器--消混叠处理

    (十二)用JAVA编写MP3解码器--消混叠处理 2015-01-04

    解码一帧Layer3第6步:消混叠处理 -- class Layer3的antialias方法 消混叠(antialias)处理就是消除伪信号.相邻两个子带间互相干扰造成失真,为了减小这种影响,在信号送入IMDCT之前作消混叠处理.消混叠通过对子带作8点的蝶形变换实现.原理如下图: 图1 图2 经过逆量化后得到频域信号,一个粒度组内一个声道内共576个频谱值,将576个频谱值被分为18个子带,每个子带32条频率线.8点的的蝶形变换在相邻的两个子带之间进行.图中cai.csi就是源码中的cs[i]

    关键词: Java, .NET, 算法
  • (九)用JAVA编写MP3解码器--哈夫曼解码

    (九)用JAVA编写MP3解码器--哈夫曼解码 2015-01-04

    解码一帧Layer3第3步:哈夫曼解码 -- huffmanDecoder方法 1.哈夫曼码表 共有33张码表,从ISO/IEC 11172-3复制一张码表出来,看看码表的庐山真面目,下面说到的哈夫曼树的构造及解码过程都以这一张表为例.码表如下所示: Huffman code table 6 x y hlen hcod No. 0 0 3 111 0 0 1 3 011 1 0 2 5 00101 2 0 3 7 0000001 3 1 0 3 110 4 1 1 2 10 5 1 2 4 00

    关键词: jvm, htc, Java, 算法, 数据结构
  • JS操作VML

    JS操作VML 2014-12-17

    可以用鼠标拖动这条线,效果如图: 说明:还有一些bug,定位还不是很准确. 代码: <html xmlns:v> <style type="text/css">v\:*{behavior:url(#default#VML);}</style> <script type="text/javascript"> /*为数组(Array)添加 insertAt 方法 */ Array.prototype.insertAt =

    关键词: prototype, 算法
  • 有公司需要招人的朋友帮推荐一下啊--时间真是不巧

    有公司需要招人的朋友帮推荐一下啊--时间真是不巧 2014-12-17

    下面这个是我的个人简历: 1.熟练使用java 2. 熟悉MSSQL,MySQL,了解Oracle 3. 熟练使用js 4. 熟练使用JSP/Servlet,Strurts,spring,hibernate,Ajax,ExtJs,还学了些杂七杂八的技术框架 5. 了解常用设计模式 项目经验(因为好多项目涉及版权,不便透露,可以给大家看的只有在学习ExtJs技术时独立开发的几个小项目了): 1.文件管理器,涉及技术:ExtJs.Struts2.Hibernate.Spring.Jakarta Co

    关键词: 项目管理, 算法, 面试, 华为, 中兴
  • 第三次CCF计算机软件能力认证题目:Z字形扫描

    第三次CCF计算机软件能力认证题目:Z字形扫描 2014-12-15

    这是第三次CCF计算机软件能力认证考试(2014年12月14日)的一道题目.小编今天有幸免费参加了这次考试.据说这题是谷歌的笔试题变形??求证实.. 好了,题外话不啰嗦,看题目 题目 题目详细如下:(来源自http://bbs.csdn.net/topics/390953265,好惊奇的帖子,不知道是哪位同学在考试期间居然能发帖到CSDN,让我有幸复制到考试原文.此外http://www.0531s.com/content-53-1928772-1.html有转发) 在图像编码的算法中,需要将一

    关键词: ccf, 算法, Z字形扫描, 计算机职业资格认证, 计算机软件能力

iOS 开发

Android 开发

Python 开发

JAVA 开发

开发语言

PHP 开发

Ruby 开发

搜索

前端开发

数据库

开发工具

开放平台

Javascript 开发

.NET 开发

云计算

服务器

Copyright (C) codeweblog.com, All Rights Reserved.

CodeWeblog.com 版权所有 闽ICP备15018612号

processed in 0.040 (s). 10 q(s)