![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 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 · 1544 阅读 · 0 评论 -
迭代法实现二分查找
package com.talong; /** * 迭代法实现二分查找 * 时间复杂度:O(lgN) * 空间复杂度:O(1) */ public class BinarySearchIterate { /** * @param array 查找数组 * @param num 查找值 * @return 找到的数组索引,没有找到返回-1 ...原创 2019-01-12 22:19:29 · 1064 阅读 · 0 评论 -
约瑟夫环问题
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。 从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列; 依此规律重复下去,直到圆桌周围的人全部出列。 解法1:利用数组存放n个人,数组下标等于他的编号,然后模拟报数过程,报到m时输出该位置的人的编号, 然后将该位置的值清原创 2013-04-09 20:43:40 · 878 阅读 · 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 · 8033 阅读 · 2 评论 -
枚举_01背包
package agrisom; /** * 枚举法解01背包问题 */ public class BackPack01Enumeration { public int [] weights; //背包重量数组 public int [] values; //背包价值数组 public BackPack01Enumeration(int []原创 2012-10-26 11:00:45 · 875 阅读 · 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 · 1398 阅读 · 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 · 584 阅读 · 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 · 959 阅读 · 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 · 2465 阅读 · 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 · 1115 阅读 · 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 · 2715 阅读 · 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 · 1435 阅读 · 0 评论 -
递归实现二分查找
package com.talong; /** * 递归实现二分查找 * 时间复杂度:O(lgN) * 空间复杂度:O(lnN)(函数递归栈的空间) */ public class BinarySearchRecursion { /** * @param array 查找数组 * @param num 查找值 * @return 找到的数组索引,没...原创 2019-01-12 22:46:58 · 337 阅读 · 0 评论