算法 Java

以下是为您整理出来关于【算法 Java】合集内容,如果觉得还不错,请帮忙转发推荐。

【算法 Java】技术教程文章

算法-java实现

1. 质因数分解public static List<Integer> factorize(int n){List<Integer> factors = new ArrayList();int i;boolean isPrime = true;for (i = 2; i <= Math.sqrt(n); i++){if (n % i == 0){factors.add(i);isPrime = false;break;}}if (isPrime){factors.add(n);}else{factors.addAll(factorize( n / i));}return factors;}

排序算法(二):java实现归并排序【代码】【图】

排序算法(二):java实现归并排序 算法思路: 分而治之(divide - conquer);每个递归过程涉及三个步骤 第一, 分解: 把待排序的 n 个元素的序列分解成两个子序列, 每个子序列包括 n/2 个元素. 第二, 治理: 对每个子序列分别调用归并排序MergeSort, 进行递归操作 第三, 合并: 合并两个排好序的子序列,生成排序结果. 这里核心的是每次的两两合并,依次从两个子序列数组的第一位开始比较,这里新建了一个最终结果的数组,将较小的那一位...

一致性hash算法及其java实现!【图】

一、背景随着业务系统越来越大,我们需要对API的访问进行更多的缓存,使用Redis是一个很好的解决方案.但是单台Redis性能不足够且迟早要走向集群的,那么怎么才能良好的利用Redis集群来进行缓存呢?当一个请求到来,我们如何决定将这个请求的内容缓存在那台Redis服务器上?我们一一道来。二、分配方法随机分配假设我们有X台服务器,当一个请求来到的时候,我们获取一个0-X的随机数,然后将内容缓存在该服务器上.这明显是不可选的,想要查询的时...

RSA 非对称加密算法的Java实现

关于RSA的介绍Google一下很多,这里不做说明。项目开发中一般会把公钥放在本地进行加密,服务端通过私钥进行解密。Android项目开发中要用到这个加密算法,总结后实现如下: import android.content.Context; import android.util.Base64;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.security.Key; import java.security.KeyFactory; ...

用于图论算法的Java库

是否存在用于标准图论算法的java库,如最短路径等.我特别寻找的算法是在图中找到最大的连通分量.解决方法:JUNG图库应该有这个.如果没有,那么也检查JGraphT 相关SO帖子:Good Java graph algorithm library?

排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序...【图】

先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎不大相同,不知是因为java的缘故还是因为我算法的缘故,欢迎拍砖。 复习排序,顺便比下各种算法的速度,榜单如下: 1、冒泡排序 2、简单选择排序 3、直接插入排序 4、折半插入排序 5、希尔排序 6、堆排序 7、归并排序 8、快速排序 当然这是慢速排行,哈哈~~ 直接上图:单位毫秒...

幂次算法java【代码】

给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。 class Solution {public boolean isPowerOfFour(int num) {return num>0&&(num & num - 1)==0 &&(num & 0x55555555)==num;} } //(num&num-1)==0表示num为2的幂数 //(num&0x55555555)==num表示num为4的幂数class Solution {public boolean isPowerOfFour(int num) {if(num<1)return false;if(num==1)return true;while(num>=4){if(num==4)return true;...

常见排序&查询算法Java代码实现

1. 排序算法代码实现/*** ascending sort* 外层循环边界条件:总共需要冒泡的轮数--每一轮都将最大或最小的数冒泡到最后* 内层循环边界条件:冒泡数字移动的边界--最终数字需冒泡到此处* 时间复杂度:O(n^2)* @param arr*/ public static void bubbleSort(int[] arr) {if (arr == null) {throw new RuntimeException("Input arr is null!");}for(int i = 0; i < arr.length - 1; i++) {for(int j = 0; j < arr.length - 1 - i; ...

简单的Floyd-Warshall算法Java实现似乎不起作用?【代码】

我一直在尝试用Java实现Floyd-Warshall算法而不使用“三循环嵌套”方式,但我似乎无法弄清楚我在代码中出错的地方. 这是显示我的顶点如何连接的地图.白色数字是顶点,黑色数字是连接顶点之间的距离. 顶点地图:http://i.imgur.com/htcaA4y.png 运行迭代后,我得到以下最终距离和序列矩阵.说“出错了”的是最终序列矩阵的第8列(右边的那个).为了从任何其他顶点到达顶点8,路径必须首先从顶点8变为9,然后变为10(根据矩阵不是这种情况 – ...

面试中常见的算法之Java中的递归【图】

1、方法定义中调用方法本身的现象2、递归注意实现 1) 要有出口,否则就是死递归 2) 次数不能太多,否则就内存溢出 3) 构造方法不能递归使用3、递归解决问题的思想和图解: 分解和合并【先分解后合并】 1. 常见的斐波那契数列 1,1,2,3,5,8,13,21,...特征: 从第三个数开始,每个数是前两个数的和。int count = 0;private int getFibo(int i) {if (i == 1 || i == 2) {count = count+1;System.out.p...