算法基础
文章平均质量分 58
BOY
这个作者很懒,什么都没留下…
展开
-
求1-n的数的全排列
package namespace;import java.util.*;public class Study{ public static void premutation(int n,int a[],int cur) { int i ,j; if(cur==n) { for( i=0;i<n;i++) System.out.print(原创 2011-10-22 09:55:03 · 925 阅读 · 0 评论 -
分治法--第K小
package divideConquer;/* * 和快速排序一样: * 第K小 [low,high) * 1.找一个基准,找出其在序列里面的绝对位置 s * 2.如果K==S,则表示要求的数据就是S * 3.如果K<S ,那在区间[low,s) 之间找第K个 * 4.如果K>S,在区间[s,high)之间找S-k个原创 2012-03-05 20:23:14 · 1035 阅读 · 0 评论 -
动态规划---0-1背包问题
package dynamicDesign;import java.util.Arrays;public class Pack0_1 { /* * 动态规划,0-1 背包问题 */ public static void main(String args[]) { int M = 10, n = 5; int c[] = new int[M + 1];原创 2012-03-13 21:25:43 · 616 阅读 · 0 评论 -
最大子串和,最长连续子串,最长子序列(不连续)
package arithmetic;import java.util.Arrays;public class SumOfSubSequence { /* * 求组数的最大子串和(连续) */ public static int maxSum(int data[], int n) { int sum, max; sum = max = data[0]原创 2012-03-15 14:44:46 · 2716 阅读 · 0 评论 -
动态规划--矩阵连乘问题
package dynamicDesign;class Matr { int a; int b; public Matr(int a, int b) { this.a = a; this.b = b; }}public class Matrix { public static void main(String args[]) { Matr[原创 2012-03-19 21:27:30 · 743 阅读 · 0 评论 -
凸多连形最优三角剖分--表达式加括号问题
最优三角剖分与矩阵连乘都是相同的问题,它们都属于表达式加括号问题矩阵连乘就是一组矩阵相乘,但不同顺序对于它们执行的乘法次数是不一样的,这就要求我们找出乘法次数最少的执行顺序 而凸多边形最优三角剖分和矩阵连乘是同一个问题,凸多边形最优三角剖分是要求你将一个凸多边形,使它们的权函数最小,假如权函数是 求三边权值最小即,式子和矩阵边乘转换成了同一个问题m[i][j] = min(原创 2012-03-20 13:02:49 · 777 阅读 · 0 评论 -
动态规划--加工顺序问题
import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.List;class Job implements Comparable{ int t1; int t2; int原创 2012-03-20 14:43:29 · 4293 阅读 · 0 评论 -
动态规划--最优二叉查找树(转载小妞滴。。。)
import java.util.Arrays;public class BestTree { public int n; public double w[][]; public double c[][]; public int r[][]; public BestTree(int n) { c=new double[n+2][n+1]; w=原创 2012-03-21 13:39:19 · 539 阅读 · 0 评论 -
搜索--深度优先搜索
package Search;import static java.lang.System.out;public class DeepFirstSearch { public static void main(String args[]) { // 图的初始化 int G [][] = new int[9][9]; //G[0][1] = 1; G[1原创 2012-03-21 14:24:21 · 400 阅读 · 0 评论 -
海明码的计算
给你一个原码字符:1011海明码满足的条件:2^r >= k+r+1 上面的r 是监督码的个数,由2^0,2^1,2^2,....... 2^r 位置上的数(o or 1)与原码组成海明码,7654321110?1??11111010110001101000原创 2012-04-15 10:14:53 · 3251 阅读 · 0 评论 -
n 皇后
package Search;import static java.lang.System.out;public class Queen { public static int sum = 0; public static void main(String args[]) { getQueen(5); } public static void getQueen(int n)原创 2012-05-03 21:32:48 · 456 阅读 · 0 评论 -
java.util.Arrays的排序分享
http://aiyooyoo.com/index.php/archives/543/转载 2012-07-26 13:14:40 · 397 阅读 · 0 评论 -
分治--合并排序
package divideConquer;import java.util.Arrays;/* * 合并排序主要是在于合并 * 将两个已经有序的序列全成一个有序序列 * 数组的区间为:[) 即从0开始 * */public class MergeSort { public static void merge(int a[],int low,i原创 2012-03-04 20:25:13 · 546 阅读 · 0 评论 -
分治法--快速排序
package divideConquer;import java.util.Arrays;/* * QuickSort Complexity is nlog(n) * 1.select one of a number as benchmark,then find the benchmark's absolute position * 2.with the be原创 2012-03-04 20:26:02 · 942 阅读 · 0 评论 -
分治算法--循环赛日程表
package divideConquer;public class ScheduleRoundRobin { /* there will n team competition,you must design * a schedule to fill the bill * 1.every team must play with other n-1 team转载 2012-02-28 15:34:22 · 1106 阅读 · 0 评论 -
求一个数阶乘的质因数的个数
package namespace;import java.io.*;import java.util.*;public class Study{ //筛选法求素数 public static ArrayList fun(int n) { int a[]=new int[n+1]; ArrayListlist=new ArrayList(); Arra原创 2011-10-21 15:50:54 · 1575 阅读 · 0 评论 -
抽屉原理---从1到20这20个数中,任取11个数,必有两个数,其中一个数是另一个数的倍数
import java.util.*; class Acm { public static void main(String args[]) { Scanner sin = new Scanner(System.in); int m,n; while(sin.hasNextInt()) { m=sin.nextInt(原创 2011-11-15 18:35:02 · 5385 阅读 · 0 评论 -
求一组线段的覆盖范围
package arithmetic;import java.util.*;/* * 定义线段类 left 左座标 right 右座标 * */class Line{ int left; int right; public Line() {} public Line(int left,int right) { this.left =原创 2011-11-26 08:52:46 · 739 阅读 · 0 评论 -
oj系统上写代码的一些小技巧
程序书写过程中的一些小技巧:1. freopen(“1.txt”,”r”,stdin); //程序运行后系统自动输入此文档里面的内容(不需要进行手动输入)freopen(“1.txt”,”w”,stdout); //程序输出的内容保存在此文件里2. memset(a,0,sizeof(a)); //数组的初始化。一般定义一个数组都要初始化数组定义int a[10] 为转载 2011-12-03 16:36:33 · 717 阅读 · 0 评论 -
KMP 算法
package arithmetic;import java.util.*;public class KMP { public static void main(String args[]) { System.out.println(KMP("aabaababaabab","ab")); } public static int[] next(St原创 2011-12-06 17:01:15 · 532 阅读 · 0 评论 -
贪心--会场安排问题
package greed;public class Room { public static void sort(int begin[],int end[],int n) { for(int i=0;i<n;i++) for(int j=0;j<n-i-1;j++) { if(end[j]>=end[j+1]) { int原创 2012-02-21 14:04:40 · 2467 阅读 · 0 评论 -
背包问题
package greed;import java.util.*;public class Pack { public static void getPack(int v[],int w[],int n,int max) { for(int i=0;i<n;i++) for(int j=0;j<n-i-1;j++) if((double)v[j]/w[j原创 2012-02-23 10:25:07 · 386 阅读 · 0 评论 -
筛选法求素数/
package namespace;import java.io.*;import java.util.*;public class Study{ //筛选法求素数 public static void fun(int n) { int a[]=new int[n+1]; Arrays.fill(a,0);//把数组的数据初始化为0 for(int i原创 2011-10-21 15:18:30 · 587 阅读 · 0 评论 -
堆排序
package arithmetic;import java.io.PrintStream;import java.math.*;import java.util.Arrays;/* * 小顶堆的自适应程序 * */public class Heap { /* * data @ 待排序的数组 * s @ 除 data[s] 均满足堆的特性原创 2012-02-25 16:36:25 · 423 阅读 · 0 评论 -
并查集--学习详解
并查集学习:l 并查集:(union-find sets)转载:http://www.cnblogs.com/cherish_yimi/archive/2009/10/11/1580839.html 利用并查集求kruskal 算法:http://www.slyar.com/blog/kruskal-disjoint-sets-c.html一种简单的用途广泛的集合.转载 2012-02-27 07:03:42 · 362 阅读 · 0 评论 -
冒泡法
package arithmetic;import java.util.Arrays;import Test.TestInterface;public class BubbleSort implements TestInterface { public static void main(String args[]) { int a [] = new int[] {4,5,1,3,原创 2012-03-15 16:38:01 · 443 阅读 · 0 评论