转:13球称重问题Java实现 收藏
13球称重问题Java实现 收藏[@more@] /** * 13球称重问题Java实现 * <p>Copyright: Copyright (c) 2004</p> * @author treerot * @version 1.0 */public class ThirteenBall { private static class Ball { private int weight; public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } Ball(int weight) { this.weight = weight; } } public static void main(String[] args) throws InterruptedException { Ball[] balls = new
原:求组合数问题!
我的Java实现:package com.herosoft.algorithm;import java.io.*;class Combination {private int count;private int[] s;public Combination(int n, int r) {if (n < r) {int temp;temp = n;n = r;r = temp;}s = new int[n];count = count(n, r);System.out.println("there are total:count: " + count);for (int i = 0; i < r; i++) {s[i] = i + 1;System.out.printf("%2d", s[i]);}System.out.println();permutation(n, r);}void permutation(int n, int r) {for (int i = 1; i < count; i++) {int m =
原:求n个数的所有组合及其和
递归实现对n个数求所有组合及每种组合的所有元素的和。迭代版本似乎无法实现,还请大家执教看能不能实现一个迭代版本。以下是Java实现:[@more@]package com.herosoft.algorithm;import java.util.List;import java.util.ArrayList;public class Combination { static void prt(int[] b, int end) { for(int i=0;i<=end;i++) System.out.print(b[i] +", "); System.out.println(); } static List list = new ArrayList(); static List list2 = new ArrayList(); static int t=0; static int[] a = {1,3,
转:递归算法学习系列之寻找第K大
概述 国人向来喜欢论资排辈的,每个人都想当老大,实在当不成,当个老二,老三,老K也不错,您一定看过这样的争论: 两个人吵架,一个人非常强势,另外一个忍受不住了便说:"你算老几呀?",下面就通过这篇文章就是要解决找出老几的问题! 2. 应用场景 在向量V[first,last)中查找出第K大元素的值 3. 分析 如果利用排序算法将向量V排好序,那么第K大元素就是索引为v.length-k的元素了,这样能解决问题,但效率不高,因为这相当于为了歼灭敌人一个小队而动用了我们全军的力量,得不偿失,回想快速排序中的分表,
转:C++实现的变种二分查找法(折半查找)--二叉查找树
转载请注明出处:http://hi.baidu.com/ipress/基本思想: 当静态查找表是有序表,即表中结点是按关键字有序,并采用顺序存储结构时,可用折半查找法。折半查找的查找的过程是:先确定待查记录所在的范围(区间),然后逐步缩小查找范围,直到找到该记录或者找不到为止。所谓"折半"的含义是指,先将给定值和所查区间中间位置的记录的关键字进行比较,若相等,则查找成功,否则,依给定值大于或小于该关键字继续在后半个区间或前半个区间中进行查找。在这里我们要讲的则完全不同与此,采用顺序二叉树进行查找,初始化的时候已经按照二
转:浮点数在计算机中存储方式
C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,那世界岂不是乱套了么,其实不论是float还是double在存储方式上都是遵从IEEE的规范的,float遵从的是IEEE R32.24 ,而double 遵从的是R64.53。 无论是单精度还是双精度在存储中都分为三个部分:符号位(Sign) : 0代表正,1代表为负 指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储 尾数部分(Mantiss
转:八皇后问题 java实现,算法两则
八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是19世纪著名的数学家高斯1850年提出:在8×8格的国际象棋盘上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。[英国某著名计算机图形图像公司面试题]算法1:典型的回朔算法。打印出8皇后的最终排列。解析:递归实现n皇后问题。算法分析:数组a、b、c分别用来标记冲突,a数组代表列冲突,从a[0]~a[7]代表第0列到第7列。如果某列上已经有皇后,则为1,否则为0。数组b代表主对角线冲突,为b[i-j+7],即从b[0]~b[14]。
原:八皇后问题的递归和非递归Java实现
原:八皇后问题的递归和非递归实现八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名 的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后 来有人用图论的方法解出92种结果。事实上就是有92种解法。以下是code:[@more@]import java.io.*;import java.util.*;class Queens {final boolean available = true;final int squar
转载自月光博客 [ http://www.williamlong.info/ ] - 中文分词和TF-IDF
中文分词(Chinese Word Segmentation)指的是将一个汉字序列切分成一个一个单独的词。中文分词是文本挖掘的基础,对于输入的一段中文,成功的进行中文分词,可以达到电脑自动识别语句含义的效果。 TF-IDF(term frequency–inverse document frequency)是一种用于信息搜索和信息挖掘的常用加权技术。在搜索、文献分类和其他相关领域有广泛的应用。 TF-IDF的主要思想是,如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF词频(Term Frequency)指的