
算法
zengshaotao
大道至简,未来可期
展开
-
冒泡排序,ArrayList
冒泡排序代码:package t03;public class MaopaoSort { public static void main(String args[]){ int arr[] = new int[]{1,4,3,5,2,6,9,8,7}; for(int i=0 ; i <arr.length ;i++){ int temp = 0 ; fo...原创 2013-04-10 12:28:04 · 231 阅读 · 0 评论 -
归集数组数据,求数组数据加和为固定值
package web; import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map; public class FindPlusEqFix { public static void main(String args[]) { ...2014-05-22 14:45:44 · 305 阅读 · 0 评论 -
二维数组最值求解
package arithmetic; /** * 对于二维数组,每一行的最大值集合里一定有整个数组的最大值 * 对于每一列的最大值,逻辑是类似的 * @author zengsht * */public class MaxArray {public static void main(String[] args) {int[][] num = { { ...2014-05-19 16:48:24 · 515 阅读 · 0 评论 -
最大公约数
package web;<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> /** * 一个数的因子,是指能被这个数整除的数(不包括自身),不同于质因数 * @author zengsht * */public class GetWanShu { ...2014-05-06 18:39:59 · 193 阅读 · 0 评论 -
处理properties文件,copy文件
<!--StartFragment -->import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStre...2014-05-05 20:12:28 · 228 阅读 · 0 评论 -
求的通项公式
<!--StartFragment -->package web;/** * 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和 * 分析:假定An=N/M ,根据两项之间分子与分母的变化规律,有 An+1 = (M+N)/N=1+ M/N; * 从而有:An+1 = 1+ 1/An; * @author zengst * @Tim...2014-05-05 20:10:14 · 213 阅读 · 0 评论 -
求到N的阶乘总和
<!--StartFragment -->package web;/** * 计算给定数N的阶乘 * @author zengst * */public class GetSum {public static void main(String args[]) {int d=4;getTotal(d);}public static void getTotal(int d ){Stri...2014-05-05 20:06:26 · 477 阅读 · 0 评论 -
分解质因数
<!--StartFragment -->package web;public class ResolvePrime {//不能声明为final的,否则后期无法修改private static int minPrime = 2;public static void main(String args[]){int forResole = 84;System.out.print(for...2014-05-05 20:03:20 · 140 阅读 · 0 评论 -
求数据重复的记录
假定一个int数组,里面数据很大,有一项是重复的,如何找到重复的项。 方法一,那就是遍历数据,假定数据项为n,那么复杂度是O(n)的平方 方法二,将数据加入到另外的集合当中,相同的项add时返回false。复杂度实际上是一个加和的结果,即数据的遍历+数据添加时集合的遍历,这里我们无法清楚判断集合遍历的复杂度,不过比我们自身设计的双层循环要好,但是这额外增加了新的空间,其相对方法一...2014-05-04 20:06:24 · 104 阅读 · 0 评论 -
求1--100丢失的数
假定一个数组的容量ARR是99,里面含有1--100这100个数里的99个,不重复,如何快速地定位到缺失的那个数。算法的复杂度是? 如果数组是有序的,也就是,1,2,3。。。。。。那么任何相邻的两个数(两数都是连续的)之间的差值的绝对值是1,如果存在不连续的情况,也就是差值的绝对值是不等于1,实际上等于2.那么这两个数之间的数便是缺失的数。也就是An-1 + 1,或者An - 1 ...2014-05-04 19:55:01 · 182 阅读 · 0 评论 -
二分法
public class Arithmetic { public static void main(String args[]){ //二分法,一般用于已经排序的数组,数据量大时,性能优势更为明显 //如果无序,可先排序 int tt[] = {-3,0}; int loopCount = tt.length; System.out.println(erfen(-1,...2014-05-04 19:38:44 · 135 阅读 · 0 评论 -
素数求得
public class IsSushu { public static void main(String args[]){ //因为i从101开始,是个奇数 //对于偶数,一定不是素数,所以i=i+2一定都是奇数 int count=0; for(int i=101;i<200;i+=2){ //假定是一个素数 boolean issu = true; ...2014-05-03 22:12:24 · 111 阅读 · 0 评论 -
交换排序
/** * time * @author zengst * order test */public class SortTest { public static void main(String args[]){ //声明时就进行了初始化 int dataArr[] = {3,1,4,2,7,9,8}; //只声明和空间分配 //int dataArr1[] = new int[1...2014-05-03 21:47:31 · 110 阅读 · 0 评论 -
大数据量重复校验
导入的功能,大家都用过,校验很多,比较多的应该算是重复性的校验。 比如导入的模板有1000条记录,那么导入的时候可能需要先和数据库里的记录进行比较,还需要和当前模板的其他记录进行比较。看过一个同事的校验逻辑,直接是双重循环,逻辑没有错,但是性能真不是很好 现在想到的方法是,利用临时表,具体逻辑: 1. 建立tmp表2. 将当前模板的数据导入到tmp表3. 在tmp...2016-04-27 18:08:29 · 2535 阅读 · 0 评论