算法
文章平均质量分 68
tyrone2025
这个作者很懒,什么都没留下…
展开
-
动态规划_最长递增子序列
package test;import java.util.Random;/* 给定数列A1,A2,...An,求最长递增子序列: 在求以Ai为末元素的最长递增子序列时,找到所有在Ai前面且小于Ai的元素Aj,即j 那么对所有Aj,都有一个以Aj为末元素的最长递增子序列的长度S(j),把其中最大的S(j)选出来,那么S(i)就等于最大的S(j)加上1, 即以Ai为末元素的最原创 2012-10-12 16:29:07 · 1551 阅读 · 0 评论 -
迭代法实现二分查找
package com.talong;/** * 迭代法实现二分查找 * 时间复杂度:O(lgN) * 空间复杂度:O(1) */public class BinarySearchIterate { /** * @param array 查找数组 * @param num 查找值 * @return 找到的数组索引,没有找到返回-1 ...原创 2019-01-12 22:19:29 · 1075 阅读 · 0 评论 -
约瑟夫环问题
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 解法1:利用数组存放n个人,数组下标等于他的编号,然后模拟报数过程,报到m时输出该位置的人的编号, 然后将该位置的值清原创 2013-04-09 20:43:40 · 890 阅读 · 0 评论 -
子集树与排列树
1.当所给问题是从n个元素的集合S中找出S满足某种性质的子集时,相应的解空间称为子集树。例如:n个物品的0-1背包问题所相应的解空间是一棵子集树,这类子集树通常有2^n个叶结点,其结点总数为(2^(n+1))-1。遍历子集树的算法通常需奥秘加(2^n)计算时间。回溯法搜索子集树的算法一般可以描述如下:void backtrack(int t) {if (t > n) output(x原创 2013-04-09 21:52:44 · 8112 阅读 · 2 评论 -
枚举_01背包
package agrisom;/** * 枚举法解01背包问题 */public class BackPack01Enumeration { public int [] weights; //背包重量数组 public int [] values; //背包价值数组 public BackPack01Enumeration(int []原创 2012-10-26 11:00:45 · 886 阅读 · 0 评论 -
递归_迷宫
package agrisom;import java.util.EmptyStackException;import java.util.Stack;/** * 递归_迷宫 *//** * 位置类 */class Position{ public int row; public int col; public Posi原创 2012-10-24 17:37:48 · 1410 阅读 · 0 评论 -
分治_数列最大值
package agrisom;/** * 分治法求数列最大值 */public class FindMax { public int devideAndConquer(int array[]) { int length = array.length; int first; int second; i原创 2012-10-23 15:12:18 · 593 阅读 · 0 评论 -
贪心_01背包
package agrisom;import java.text.DecimalFormat;import java.text.NumberFormat;/** * 贪心算法求背包问题 *//** * 物品类 */class Good{ public int weight; //重量 public int value;原创 2012-10-25 15:07:57 · 968 阅读 · 0 评论 -
同时求数列的最大值与最小值
package agrisom;/** * 同时求最大值与最小值 */public class FindMaxAndMin { public void findMaxAndMin(int [] array){ int length=array.length; int max,min; if(length==0){原创 2012-10-24 16:38:36 · 2478 阅读 · 0 评论 -
深度优先与广度优先遍历文件
package agrisom;import java.io.File;import java.io.IOException;import java.util.Stack;import java.util.Queue;import java.util.LinkedList;public class ListFile { public static vo原创 2012-10-22 15:05:41 · 1127 阅读 · 0 评论 -
O(1)时间复杂度删除链表元素
package lineartable;/** * 链表节点类 */class Node{ public String value; public Node next; public Node(String value){ this.value=value; this.next=null; }}/*原创 2012-10-19 14:15:03 · 2742 阅读 · 0 评论 -
动态规划_k阶裴波那契序列
package agrisom;/* 问题:已知k阶裴波那契序列的定义为f0=0, f1=0, ..., fk-2=0, fk-1=1;fn=fn-1+fn-2+...+fn-k, n=k,k+1,...举例说明:(1)k=2时,即2阶裴波那契序列定义为:f0=0, f1=1;f2=f1+f0,f3=f2+f1,f4=f3+f2,.....(原创 2012-10-18 15:44:29 · 1460 阅读 · 0 评论 -
递归实现二分查找
package com.talong;/** * 递归实现二分查找 * 时间复杂度:O(lgN) * 空间复杂度:O(lnN)(函数递归栈的空间) */public class BinarySearchRecursion { /** * @param array 查找数组 * @param num 查找值 * @return 找到的数组索引,没...原创 2019-01-12 22:46:58 · 353 阅读 · 0 评论