【常用算法(java)】教程文章相关的互联网学习教程文章

经典排序算法 - 归并排序Merge sort【代码】【图】

经典排序算法 - 归并排序Merge sort原理,把原始数组分成若干子数组,对每一个子数组进行排序,继续把子数组与子数组合并,合并后仍然有序,直到全部合并完,形成有序的数组举例无序数组[6 2 4 1 5 9]先看一下每个步骤下的状态,完了再看合并细节第一步 [6 2 4 1 5 9]原始状态第二步 [2 6] [1 4] [5 9]两两合并排序,排序细节后边介绍第三步 [1 2 4 6] [5 9]继续两组两组合并第四步 [1 2 4 5 6 9]合并完毕,排序完毕输出结果[1 2 4 5 6 9]合...

[算法]二叉树的非递归遍历算法【代码】

1.二叉树的非递归中序遍历算法二叉树的中序遍历方法是:左中右,因此一开始会顺着根节点的左孩子一直往下(这点和先序遍历一样,这也是二者前面部分代码很相似的原因),到最后一个左孩子时尝试把它的右孩子塞进栈内,然后顺着它的的左孩子而下,直到不能访问为止。利用的栈FILO的特性,对每个节点都进行顺左孩子而下即可。上代码: 1void inOrder(TreeNode* root,vector<int>& inOrder)2 {3 stack<TreeNode*>st;4 TreeNo...

面试所遇到的两个算法题【代码】

题目1:写一段代码,求出数列{1,2,2,3,3,3,4,4,4,4,5,5,5,5...n},第169的数字,n的大小为10^18,比如输入169:输出的数为18思考:数列的规律是到几,这个数字就出现几次,所以可以采用循环输入数列,求169的数字,可以用求数组下标的方式来获得,以下是代码public static void main(String[] args) {long l = 1; //使用双循环写出这个数列,将数列的值添加进集合里ArrayList list = new ArrayList();for (; l < Math.pow(10,18); l+...

基于特征差异的异常预测算法(LOF算法)【图】

基于未知准则的WSS失效异常检测算法——第二种算法LOF算法(异常离群算法—非聚类算法)1.算法原理介绍 LOF算法,全称是Local Outlier Factor(局部离群因子检测方法),是一种基于密度的高精度离群点异常检测算法。基于密度的离群点检测方法的关键步骤在于给每个数据点都分配一个离散度,其主要思想是:针对给定的数据集,对其中的任意一个数据点,如果在其局部邻域内的点都很密集,那么认为此数据点为正常数据点,而离群...

[算法模版]Link-Cut-Tree【代码】【图】

[算法模版]Link-Cut-Tree博主懒本博客只对现有博客进行补充,先直接放隔壁链接。FlashHu-LCT总结Menci-LCT学习笔记make-root操作make-root操作用于把任何一个点反转到当前树的根节点。做法是先把要进行操作的节点x进行access,将root和x进行连通。然后进行splay(x)操作,把x变成splay的根。(请注意,这时候x在主树的深度仍然没有改变)。随后将x的子树全部进行反转操作。也就是改变了这个splay的深度。虽然splay和splay之间的连接...

数据结构与算法分析 3.4&3.5 — 链表的交与并算法【代码】【图】

代码: #include <list>template<typename ElementType> list<ElementType> Intersect(const list<ElementType> &list_1, const list<ElementType> &list_2) {list<ElementType> result;auto leftPos = list_1.begin( );auto rightPos = list_2.begin( );while (leftPos != list_1.end() && rightPos != list_2.end()){if (*leftPos > *rightPos)rightPos++;elseif (*leftPos < *rightPos)leftPos++;else{result.push_back(*leftPo...

ID3决策树算法原理及C++实现(其中代码转自别人的博客)【图】

分类是数据挖掘中十分重要的组成部分.分类作为一种无监督学习方式被广泛的使用.之前关于"数据挖掘中十大经典算法"中,基于ID3核心思想的分类算法C4.5榜上有名.所以不难看出ID3在数据分类中是多么的重要了.ID3又称为决策树算法,虽然现在广义的决策树算法不止ID3一种,但是由于ID3的重要性,习惯是还是把ID3和决策树算法等价起来.另外无监督学习方式我还要多说两句.无监督学习方式包括决策树算法,基于规则的分类,神经网络等.这些分类方式...

常见加密算法

七种算法:BASE64、MD5、SHA、HMAC、RSA 、AES、ECC MD5、SHA、HMAC、RSA这四种加密算法,可谓是非可逆加密,就是不可解密的加密方法,我们称之为单向加密算法。 一、BASE64 按照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be h...

图像的相似度Hash算法【代码】【图】

Hash算法有三种,分别为平均哈希算法(aHash)、感知哈希算法你(pHash)和差异哈哈希算法(dHash)。针对以上三种的Hash算法详解见博客园文章 https://www.cnblogs.com/Kalafinaian/p/11260808.html本文实现针对平均哈希算法;1 平均哈希算法(aHash)1.1 算法步骤 平均哈希算法是三种Hash算法中最简单的一种,它通过下面几个步骤来获得图片的Hash值,这几个步骤分别是(1) 缩放图片;(2)转灰度图; (3) 算像素均值;(4)根据相似...

Java算法分析与设计视频教程下载

下载地址:http://pan.baidu.com/s/1i4pMZ9z 密码:v9ra 算法分析与设计Java版,是一套实用型算法课程。通过本课程的学习,学员可以掌握以下技术点:线性结构与顺序表、单向链表、循环链表、栈的基本概念、链式堆栈、中缀表达式、队列、链式队列、串、MyString、Brute-Force算法、MySet类实现、矩阵类、递归算法、哈夫曼树、希尔排序、HashTable算法等内容。第一讲、算法基本概述、抽象数据类型第二讲、算法的设计目标、时间复杂度...

Manacher算法【代码】【图】

求回文子串 O(n) manacher 算法注:此处引用他人的文章题目:解答:publicclass LongestPalindromicSubstring {public String longestPalindrome(String s) {StringBuilder sb = new StringBuilder(s); int[] p = newint[2*s.length()+3]; //p数组用来保存每个字符的回文半径sb.insert(0, ‘?‘); //这里在开头和结尾设置两个不同的字符,是为了向两边扫描的时候设置字符对比结束,sb最终结果为(?#...#!)for(int i=0;i<=s.length()...

贪心算法【代码】

1 贪心算法1.1 简介贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。也就是说,不从整体最优上加以考虑,做出的只是在某种意义上的局部最优解。注意 贪心算法不是对所有问题都能得到整体最优解1.2 分配问题455. 分发饼干(Easy)分析每个孩子按照胃口的大小从小到大依...

区间贪心算法 结合优先队列使用效果更佳——以POJ 2376、1328、3190为例【代码】【图】

贪心算法题目很多本质上都是区间贪心,这次就主要讨论以区间为载体进行的贪心算法。目录POJ 2376: Cleaning Shifts题目DescriptionInputOutputSample InputSample OutputHint题解题目大意思路代码POJ 1328: Radar Installation题目DescriptionInputOutputSample Input:Sample Output题解题目大意思路代码POJ 3190: Stall Reservations题目DescriptionInputOutputSample InputSample OutputHint题解题目大意思路代码 我们以POJ上的这...

Cookie中存放数据l加密解密的算法【代码】

public class CookieUtil {/*** * @param response HttpServletResponse类型的响应* @param cookie 要设置httpOnly的cookie对象*/public static void addHttpOnlyCookie(HttpServletResponse response,Cookie cookie) {// 判断对象是否存在null的情况if (checkObjIsNull(response) || checkObjIsNull(cookie)) {return;}//依次取得cookie中的名称、值、最大生存时间、路径、域和是否为安全协议信息String cookieName = cookie.getN...

关于删除数组任意数值的算法【代码】

Array.prototype.indexNew =function(val){ for(var i=0;i<this.length;i++){ if(this[i]== val){ return i; } } return -1;};//在数组的原型对象上添加了indexNew方法,主要用来查找传入的数值是否存在于数组中。如果存在就返回该数值,不存在则返回-1Array.prototype.remove = function(val){ var index = this.indexNew(val); if(index > -1){ this.splice(index,1); }};//数...