算法4公开课课前准备和环境搭建

Java 发表评论
公开课地址:https://www.coursera.org/learn/algorithms-part1/home/welcome 算法4参考书:https://book.douban.com/subject/19952400/ 公开课建议编译器和环境配置集成下载地址:http://algs4.cs.princeton.edu/home/ 在上公开课前,如果有其他语言面向对象的编程基础,没有写过java的话,建议先阅读《算法(第四版)》的1.1和1.2章,了解一些java的基础然后在开始上课。后期写编程作业的时候遇到…

pid控制算法系列(1)常用的控制算法

Java 发表评论
1.控制系统的基本结构: 控制目的:   控制的根本目的就是要使控制对象当前的状态值与用户的设定值相同(最大限度的接近)。 基本思想:   用户设定值SV与被控制对象当前的值PV两者同时送入由特定硬件电路模型或特定的软件算法组成的控制算法逻辑中,利用不同的控制算法对SV和PV进行分析、判断、处理,从而产生当前应该输出的控制信号OUT,控制信号经过执行机构施加到控制对象上,从而产生预期的控制效…

词干提取算法Porter Stemming Algorithm解读

Java 发表评论
转自:http://www.131x.com/zhaosq/BBSShow.aspx?id=1720 词干提取算法Porter Stemming Algorithm解读 ClickNum:199|ReplyNum:2   Lucene里面的分词器里面有一个PorterStemFilter类,里就用到了著名的词干提取算法。所谓Stemming,就是词干,在英语中单词有多种变形。比如单复数加s,进行时加ing等等。在分词的时候,如果能够把这些变形单词的词根找出了,对搜索结果是很有帮助的。Stemming算法有很多…

基于Redis BloomFilter算法

Java 发表评论
public class BloomFilter implements Serializable { private static final long serialVersionUID = 5829598197124113258L; private static final int DEFAULT_SIZE =2 << 25 ; //2的24次方 private static final int [] seeds =new int []{5,7,11,13,19,31,37,61,73,89};//构造不同因子,用于不同散列函数 private BitSet bits= new BitSet(DEFAULT_SIZE); private SimpleHash[] func=new Si…

java中不用Math.sqrt,实现开平方根的算法

Java 发表评论
前几天参加一个外企的面试,有一个笔试题,写出来共享一下,如有不对的地方,希望大家指点一下,谢谢 public class TestSqrt {public static void main(String[] args){int num = 9;System.out.println(sqrtMathod(num));}public static double sqrtMathod(int num){double sqrtNum = -1;boolean isFindSqrt = false;// get int sqrt numdouble tempSqrt = 0;if (num > 0){if (num == 1){return 1;}el…

黑马程序员-算法-字符串比较JAVA自带BF算法、KMP算法

Java 发表评论
-------android培训、java培训、期待与您交流! ---------- java中自带的算法,也被称为BF(Brute Force)算法: /** * Code shared by String and StringBuffer to do searches. The source is the * character array being searched, and the target is the string being * searched for. * * String类和StringBuffer类共享的用于搜索的代码。源字符数组中搜索目标字符数组。 * * @param source * t…

Java 超级大乐透

Java 发表评论
package com.neusoft.data20180716; import java.util.Random; /**  * 大乐透  * 红球1-35 生成5个不重复  * 篮球1-12 生成2个不重复  * 红蓝可以重复  * @author 郭浩  *  */ public class Shuangseqiu {     public static void main(String[] args) {         //创建一个7位的长度数组                  int[] ball = new int[7];                  //循环控制数组钱5位并在循环中生成随机数      …

DES加密模式详解(二)

Java 发表评论
转载地址:http://hi.baidu.com/my2008space/item/0f9b27d6b816a9876cce3f45 在JAVA中使用DES算法 http://www.cnblogs.com/xyzlmn/archive/2010/05/06/1729039.html DES算法提供CBC, OFB, CFB, ECB四种模式,MAC是基于ECB实现的。  一、数据补位 DES数据加解密就是将数据按照8个字节一段进行DES加密或解密得到一段8个字节的密文或者明文,最后一段不足8个字节,按照需求补足8个字节(通常补00或者FF…

Hill密码加密解密java代码

Java 发表评论
本篇文章,我要通过java代码实现Hill加密解密。 在上一篇,我们通过java代码实现了逆矩阵,这个是实现Hill密码的前提 首先我们实现加密,然后再通过加密的密文来进行解密过程。 1、Hill加密 我们将明文"paymoremoney"通过加密密钥K进行Hill加密 |17 17 5 | K=|21 18 21| |2 2 19| 每三个字母进行转换,依次转换结束。 private static String getEncrypttext(String plainttext) { // TODO Auto-gener…

BWT算法解析及Java语言实现

Java 发表评论
BWT算法将原来的文本转换为一个相似的文本,转换后使得相同的字符位置连续或者相邻,之后可以使用其他技术如:Move-to-fronttransform 和 游程编码 进行文本压缩。 BWT原理: 1. BWT编码 ①对需要转换的字符串后加“$”符号($作为标识符,保证n个循环移位后的字符串均布相同),进行循环右移,每次循环一位,记录下每次右移后的结果。 ②对循环移位后得到的n个字符串按照字典序排序。 ③记录下排序后得到…

Morris遍历

Java 发表评论
Morris算法,该算法的时间复杂度也是O(N),但是空间复杂度却能达到最优的O(1)。下面根据二叉树的三种遍历方式详细介绍Morris算法。 树的节点定义如下: [java] view plain copy public class TreeNode {       int val;           TreeNode left;           TreeNode right;           TreeNode(int x) {                val = x;        }       }   一、中序遍历: 算法步骤:  1. 如果当前节点的左…

JAVA代码—算法基础:字谜分组

Java 发表评论
字谜分组 问题描述:给定一个字符串数组,请将数组中的元素进行分组。例如,给定字符串数组为: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],则返回结果为: [ [“ate”, “eat”,”tea”], [“nat”,”tan”], [“bat”] ] 注意:所有的字符串均为小写字母。 分析:通过观察给定的字符串数组,分析其每一个元素,和分析返回结果,可以发现能够归为一组的字符串都有一个共同的特点:一组中包含相同的字符,并且…

自学算法之互质数和质数代码实现

Java 发表评论
互质数 定义:最大公约数只有1的两个整数,叫做互质数。 例如: 7,11,13的最大公约数为1,即三者互质。 代码实现: 辗转相除法(两数的最大公约数求法) 用较小的数(Big)除以较大的数,余数 public static int isZhi(int big, int small) { if(small > big) { int temp = big; big = small; small = temp; } int r = big % small; if(r == 0) { return small; } else { return isZhi(small, r); } }…

两种Java数字交换算法哪个快。

Java 发表评论
直接交换与临时空间交换算法比较 昨天在看到网上有问一段代码是什么作用,看了一下,是任意字符串逆序的功能。 大概是这样的。 char [] s =str.toString().toCharArray(); long now =0; int begin =0 ;int end=s.length -1; while(begin<end){ s[begin]=(char) (s[begin]^s[end]); s[end]=(char) (s[end]^s[begin]); s[begin]= (char) (s[begin]^s[end]); begin++; end--; } 以前还真没见过这么写…

Java版爬楼梯递归版最佳优化

Java 发表评论
假设你现在正在爬楼梯,楼梯有 nn 级。每次你只能爬 11 级或者 22 级,那么你有多少种方法爬到楼梯的顶部? 输入格式 第一行输入一个整数 n(1≤n≤50)n(1≤n≤50),代表楼梯的级数。 输出格式 输出爬到楼梯顶部的方法总数。 样例输入 5 样例输出 8 关键在于保存每次的计算状态,减少重复计算 import java.util.*; class Main{ static int a[]; public static int f(int k){ if(k==1||k==0){return 1;} if…
« 上一页   下一页 »