【算法(Java实现)—— 分治算法】教程文章相关的互联网学习教程文章

“读者-写者问题”的写者优先算法实现【代码】

转自http://blog.csdn.net/zoudaokou2006/article/details/3966694读者一写者问题是一个用信号量实现的经典进程同步问题。在系统中,一个数据集( 如文件或记录) 被几个并发进程共享,这些线程分两类,一部分只要求进行复操作,称之为“读者”;另一类要求写或修改操作,我们称之为“写者“。一般而言,对一个数据集,为了保证数据的完整性、正确性,允许多个读者进程同时访问,但是不允许一个写者进程同其它任何一个进程(读者或者...

Java实现Dijkstra算法求最短路径【代码】【图】

任务描述:在一个无向图中,获取起始节点到所有其他节点的最短路径描述Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN, CLOSE表方式用OPEN,CLOSE表的方式,其采用的是贪心法的算法策略,大概过程如下:1.声明两个集合,open和close,open用...

词性标注维特比算法实现【代码】

基于前几篇文章对维特比算法的说明,此文对维特比算法进行实现,并基于维特比算法实现给定语句的词性标注。关于\(pi,A,B\)的说明参考文章词性标注语料预处理实战,维特比相关算法说明参考词性标注维特比算法介绍def log(v):if v == 0:return np.log(v+0.000001)return np.log(v)def vertibe(x, pi, A, B):""":param x:输入的待预测词性的文本,例如 "I like NLP":param pi:初始的词性概率:param A:给定词性,每个单词的概率:param ...

排序算法Java实现(基数排序)【代码】

1package sorting;2 3/** 4 * 基数排序5 * 平均O(d(n+r)),最好O(d(n+r)),最坏O(d(n+r));空间复杂度O(n+r);稳定;较复杂6 * d为位数,r为分配后链表的个数7 * @author zeng8 *9*/10publicclass JishuPaixu { 1112publicstaticint getNumInPos(int num, int pos) { 13int tmp = 1; 14for (int i = 0; i < pos - 1; i++) { 15 tmp *= 10; 16 } 17return (num / tmp) % 10; 18 } 1920publicstaticint getMaxWeishu...

隐马尔科夫模型的维特比算法java实现,详细原理请自行查看52nlp的

/** * 【计算维特比矩阵】 * delta[ t ][ k ] = v_k(i) =log( max(P(pi in state k has sym i | path pi)) ) */ public void CalculateViterbiMatrix() { int T = O.length; delta = new double[ T ][N]; PSI = new int[ T ][N]; //1、初始化,计算初始时刻(直觉上的第1时刻)所有状态的局部概率 for (int i = 0; i < N; i++){ delta[0][i] = logPI[ i ] + logB[ i ]...

【算法】模拟退火算法解决TSP问题的matlab实现【代码】【图】

前言 模拟退火算法(SA)是较为常见的现代优化算法之一,常用于旅行商(TSP)问题中。数学建模里学生们常常使用该算法,甚至是为了使用这个算法而使用这个算法,让评委老师们审美疲劳。评委老师明确表明使用所谓"神算法"(神经网络,模拟退火,遗传算法等等)而过于牵强者拿不了高分(见:http://special.univs.cn/service/jianmo/sxjmyw/2018/1128/1187951_15.shtml)。希望大家不要觉得它名词高级就认为它能吸引评委眼睛,...

deep learning 自编码算法详细理解与代码实现(超详细)【代码】【图】

在有监督学习中,训练样本是有类别标签的。现在假设我们只有一个没有带类别标签的训练样本集合 ,其中 。自编码神经网络是一种无监督学习算法,它使用了反向传播算法,并让目标值等于输入值,比如 。下图是一个自编码神经网络的示例。通过训练,我们使输出 接近于输入 。当我们为自编码神经网络加入某些限制,比如限定隐藏神经元的数量,我们就可以从输入数据中发现一些有趣的结构。举例来说,假设某个自编码神经网络的输入 是...

关于cuda实现归约求和算法的问题【代码】

归约算法的基本思想是,对一个输入数组执行某种计算,然后产生一个更小的结果数组。当大量的数进行加和计算时,可以利用归约算法,多线程同时进行求和计算,使得时间复杂度下降。算法思想如下: 设数据总数为N,输入数组为a[N]。首先启用N/2个线程,对于第i个线程,计算 a[i]=a[i]+a[i+N/2],此时,每个线程都将两个值合并为一个值,得到部分和数组,即a[0]到a[N/2-1];然后,对部分和数组执行操作,第i个线程计算a[i]=a[i]+a...

harris 算法python实现【代码】【图】

harris 最常用作特征检测算法。 第一个文件harris.py<pre name="code" class="python">from scipy.ndimage import filters from numpy import * from pylab import * def compute_harris_response(im,sigma=3):imx=zeros(im.shape)#计算导数filters.gaussian_filter(im,(sigma,sigma),(0,1),imx)imy=zeros(im.shape)filters.gaussian_filter(im,(sigma,sigma),(1,0),imy)Wxx=filters.gaussian_filter(imx*imx,sigma)#计算harri...

java实现经典排序算法【代码】【图】

前言博主最近在恶补基础知识,算法必然是必不可少的,那么就从经典排序算法开始吧!(图源网络,侵删),没有列出全部,因为在期末考试囧代码太多,就只显示了最关键的部分1. 冒泡排序 实现思路: (1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。 (2)这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第 N-1个位置。 (3)N=N-1,如果N不为 0就重复前面二步,否则排...

微博URL短网址生成算法原理及(java版、php版实现实例)【代码】

短网址(Short URL),顾名思义就是在形式上比较短的网址。通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流。目前已经有许多类似服务,借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接。 例如:http://t.cn/SzjPjA短网址服务,可能很多朋友都已经不再陌生,现在大部分微博、手机邮件提醒等地方已经有很多应用模式了,并占据了一定的市场。估计很多朋友现在也正在使用。 看过新...

哈弗曼算法实现压缩和解压

//这是我一个学长的,我看了好久才明白,给大家分享,这里的代码只是一个压缩方法的,还有 //一些类已经上传(测试类,结构类都在文件里面),需要可以下载,这个算法没有用递归遍历整个文件夹,所以之只能压缩 //一个文件,下面是主要压缩步骤: //整个压缩文件的内容:(写入顺序)* 1.将原文件大小写入文件 dos.writeInt(fileSize);* 2.将码表的大小写入文件 dos.writeInt(mapSize);* 3.将每个字节写入文件fos.write(listBy.get(i...

经典排序算法的PHP实现类【代码】

近期广受笔试摧残,对于各种排序也是晕头转向。 更坑爹的是貌似大多都是用C++、Java实现相关算法,让我搞PHP的情何以堪,更何况,PHP本身就有排序函数sort(),其实来说,是很简单的,这也可能是为什么不用PHP进行排序吧。 但考虑到PHP毕竟也是一门面向对象的语言吧,我们利用原生的语法,也是可以实现经典排序算法的,先不说性能如何,切不要妄自菲薄吧。 下面为具体的经典排序算法的PHP实现类。<?php/*** Author: helen* Creat...

排序算法(python实现)【代码】

# 找到序列中最小元素,然后与第一个交换,如果第一个为最小和自己交换 # 再从剩下的元素中找到最小元素,与剩下的元素中的第一个交换。 # 核心的意思就是每次要在剩余元素中选出最小,排到前面的位置def select_sort(sort_list):"""选择排序"""n = len(sort_list)for i in range(n-1):min_index = ifor j in range(i+1, n):if sort_list[j]< sort_list[min_index]:min_index = iif min_index != i:sort_list[i], sort_list[min_in...

【LeetCode-面试算法经典-Java实现】【151-Evaluate Reverse Polish Notation(计算逆波兰式)】【代码】【图】

【151-Evaluate Reverse Polish Notation(计算逆波兰式)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, *, /. Each operand may be an integer or another expression. Some examples: ["2", "1", "+", "3", "*"] ->((2 + 1) * 3) ->9["4", "13", "5", "/", "+"] ->(4 + (13 / 5)) ->6题目大意   ...