算法
ShulamiteWang
我的世界我主宰
展开
-
顺序表
线性表 #include #include "seqlist.h"int main(){ Pseqlist seq1; seq1 = create_null_seqlist(20); for(int i = 0; i seq1->element[i] = i + 1; seq1->n++; }原创 2016-06-12 15:07:18 · 238 阅读 · 0 评论 -
算法复习总结
第一章1 什么是算法 算法是描述问题的过程和方法2 算法和程序有什么区别 算法是解决问题的步骤,程序是算法的代码实现。算法要依靠程序来完成功能,程序需要算法作为工具。3算法复杂度 包括时间复杂度和空间复杂度第二章 1什么是递归算法 直接或间接地调用自身的算法 2.分治法的基本思想 将一个大问题划分成若干个小问题。 3.原创 2016-11-29 19:36:33 · 588 阅读 · 0 评论 -
贪心算法
贪心算法不是从整体最优考虑,是做出的选择只是在某种意义上的局部最优选择,得到最终结果也是整体最优。**基本要素 1。贪心选择性质 通过一系列的局部最优达到整体最优2。最优子结构性质 一个问题的最优解包含子问题的最优解下面是几个贪心选择算法实现的实例(局部最优达到整体最优)活动安排问题 该问题要求高效的安排一系列争用某一公共资源的活动。问题描述:设原创 2016-11-15 21:02:16 · 384 阅读 · 0 评论 -
递归与分治策略
*递归函数的概念* 函数用自身给出定义的函数 分治法要素 (1)将一个规模较大的问题划分成规模小的相同子问题。 (2)求子问题的解(子问题独立),从而解决原问题的解。以下是递归函数的实例1。阶乘函数 阶乘函数可递归地定义为: n!={1,n=0;n(n-1)! ,n>0} 递归函数的自变量n的定义域为非负整数,递归式的第一式给出了这个函数原创 2016-11-11 20:32:29 · 516 阅读 · 0 评论 -
回文序列
如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如: {1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。 现在给出一个数字序列,允许使用一种转换操作: 选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入到这两个数之前转载 2016-10-30 22:33:01 · 663 阅读 · 0 评论 -
手套问题
题目描述在地下室里放着n种颜色的手套,手套分左右手,但是每种颜色的左右手手套个数不一定相同。A先生现在要出门,所以他要去地下室选手套。但是昏暗的灯光让他无法分辨手套的颜色,只能分辨出左右手。所以他会多拿一些手套,然后选出一双颜色相同的左右手手套。现在的问题是,他至少要拿多少只手套(左手加右手),才能保证一定能选出一双颜色相同的手套。 给定颜色种数n(1≤n≤13),同时给定两个长度为n的数组lef原创 2016-10-28 22:04:51 · 1585 阅读 · 3 评论 -
阶乘递归函数
package wang;/*阶乘递归函数*/public class factorial { static int factorial(int n){ if(n==0) return n; else return原创 2016-10-25 22:55:19 · 598 阅读 · 0 评论 -
fibonacci
当n大于1时,这个数列的第n项的值是前面两项之和,是用较小的自变量的函数值进行定义较大的自变量的函数值,与之前的阶乘递归函数思想一样。即:初始值为F(0),F(1).package wang;/*斐文列递归函数实现*/public class fibonacci { public static void main(String[] args){ System.out.pr原创 2016-10-25 22:59:39 · 168 阅读 · 0 评论 -
全排列问题递归实现
**全排列问题递归实现**package wang;/*全排列问题*/public class Mymath { public static void swap(Object s[],int k,int m){ Object t=s[k]; s[k]=s[m]; s[m]=t; }public static原创 2016-10-25 23:01:36 · 397 阅读 · 0 评论 -
整数划分问题
整数划分问题递归实现package wang;import java.util.Scanner;/****88****整数划分问题*/public class q { public static int q(int n,int m)//定义一个单变量函数 { if((n<1)||(m<1))//没有整数 return 0; i原创 2016-10-25 23:03:14 · 168 阅读 · 0 评论 -
汉诺塔问题
把大问题划分成小问题package wang;/*汉诺塔问题*/public class hanoi { public static void main(String[] args) { System.out.println("汉诺塔:+"); System.out.println(); } // TODO Auto-generated原创 2016-10-25 23:04:43 · 175 阅读 · 0 评论 -
动态规划
*基本思想**子问题不独立(重叠子问题)**将待求解问题划分成若干子问题,先求解子问题,然后从子问题中得到原问题的解。与分治法不同的是,动态规划用一个表来记录所有已解决的子问题的答案。*动态规划适用于最优化问题。**要素:** 最优子结构性质 重叠子问题步骤(1)找出最优解的性质,刻画其结构特征(证明最优解具有最优子结构性质原问题具有最优解包含子问题的最优)(2)递归的定义最优值原创 2016-11-12 13:13:51 · 287 阅读 · 0 评论