算法
文章平均质量分 74
ruanjianxiong
这个作者很懒,什么都没留下…
展开
-
欧几里得算法
证明,在步骤E1开始时,m总是大于n的,除了这一步头一次出现时可能出现相反情况外 余数一定比除数小(反证法可证)原创 2010-03-10 12:55:00 · 421 阅读 · 0 评论 -
任意长度的字符串输入
#include#include #include#define Step 10 //空间增加的步长.char * getstr() //任意长度的字符串输入,返回字符串的首地址.{char *temp, *str=(char *)malloc(10);int c=0, len=0, times=1, number=0;if(!str){printf("内存不够,无法开辟字符串空间!");retu原创 2010-03-11 13:49:00 · 1398 阅读 · 0 评论 -
贪心算法思想
顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。贪心算法的基本要素:1原创 2010-03-12 21:15:00 · 1152 阅读 · 0 评论 -
0/1背包问题动态规划详解
动态规划是用空间换时间的一种方法的抽象。其关键是发现子问题和记录其结果。然后利用这些结果减轻运算量。比如01背包问题。/* 一个旅行者有一个最多能用M公斤的背包,现在有N件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为P1,P2,...,Pn.若每种物品只有一件求旅行者能获得最大总价值。输入格式:M,NW1,P1W2,P2......输出格式: X */因为背包最大容原创 2010-03-13 00:57:00 · 375 阅读 · 0 评论 -
贪心算法运用于背包问题(C++实现)
贪心法的基本思路:从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。该算法存在问题:1. 不能保证求得的最后解是最佳的;2. 不能用来求最大或最小解问题;3. 只能求满足某些约束条件的可行解的范围。贪心算法的运用-背包问题背包问题和0/1背包问题的主要区别就是物品可不可以再分割。背包问题中的物品可以再进行分割,而0/1原创 2010-03-14 09:36:00 · 4258 阅读 · 0 评论 -
变长数组
1.变长一维数组 这里说的变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。实现变长数组最简单的是变长一维数组,你可以这样做: //文件名: array01.cpp #include using namespace std; int main() { int len;原创 2010-03-12 20:59:00 · 923 阅读 · 0 评论