- 博客(18)
- 收藏
- 关注
原创 编译原理 龙书 第二章 一个简单的算术式(+,-)翻译器实现
昨天晚上决定正面硬刚神课《编译原理》。硬上龙书。 下面是 一个简单的算术式中缀变后缀的翻译器。 这个也是 龙书中 一个C实现源码 。部分用c++改写。#include #include #include #include using namespace std;int lookahead;void error()//错误处理{ cout<<"erro
2015-06-10 14:41:52 845
原创 算法导论 动态规划 钢条切割问题的自底向上解法
正式应用动态规划。 适用于动态规划解决的问题应拥有以下两个要素: 1. 最优子结构(最佳选择)2.子问题重叠(最终的最优解的每个分部步骤,都是当前最优的子解。与贪心算法试图通过局部最优解来组合成最优解的思想相似) 下面第一版代码中,依旧存在与上一篇第一版代码相同的问题——只能求解p数组中给出的最大限度。N>=10,代码就不能够求解出正确答案。(代码中你们都懂的
2015-06-08 08:28:23 1554
原创 动态规划 钢条切割问题的朴素解法
第一版代码 :#include using namespace std;int max(int a,int b){ if(a>=b)return a; else return b;}int cut_rod(int *p,int n){ int q=NULL; if(n==0)return 0; else for(int i=0;i<n;i
2015-06-03 17:19:32 676
原创 算法导论(四) (1)
#include using namespace std;int main(){ int a[5]; int b[5]; int c[10]; for(int i=1;i<5;i++) cin>>a[i]; for(int i=0;i<10;i++) c[i]=0; for(int i=1;i<=4;
2015-06-03 13:56:46 499
原创 算法导论(三) 快速排序
快排直接上代码,数学推导以后再上还有一版随机化版本的快速排序#include using namespace std;void _swap(int a[] , int i , int j)//交换函数{ int temp; temp = a[i]; a[i] = a[j]; a[j] = temp;}int Partiti
2015-06-02 13:09:53 534
原创 算法导论(二)堆排序
debug这么久hhhhhhh 话不多说 贴代码#include #include using namespace std;void Max_Heapify(int *a,int i,int _size){ int l,r,largest; int temp; l = 2*i; r = 2*i+1; if(la[i])
2015-06-01 20:32:42 525
原创 算法导论 (一)归并排序实现 c++
#include using namespace std;void Merge_Sort(int *a,int p,int q ,int r)//归并{ int i,j,k; int n1=q-p+1; int n2=r-q; int *le=NULL; int *ri=NULL; le = new int [
2015-05-27 17:34:11 625
原创 高精度数算法 - - 加法
基本数据类型 长度有限。所以大的数据被单独拿出来。高精度算法就是模拟我们在纸上的运算。 我擦,跟百度上30行的代码比较,我的80行就是狗屎。。。。。要死要死要死我忘记了。。。。一个空间有剩余的int[]后面是自带补0的啊。。。。。。 还有平时没有注意到的三目运算符length=(str1>str2)?str1:str2;上代码#include #inclu
2014-12-06 19:14:31 420
原创 水题 删数问题
Description问题描述: 给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列成一个新的正整数。 算法设计: 给定n (1试着设计一个算法,找出删去k个数,剩下数字组成的新数最小的删数方案。Input 可输入多组测试数据,每组测试数据分两行,每行一个数,数的含义如下。第一行:正整数a(a是大于0的一个n位正整数) 第二行:
2014-12-06 16:50:29 448
原创 十五周指针基础
(2) new 和delete //下面的程序,输入10 100和100 10,均可以输出max=100 min=10,请补充完整程序#include using namespace std;int main( ){ int *p1,*p2,t; //本程序以下不准再加入新的变量,下面用new操作符分配空间,并用p1、p2分别保存其地址 p1=new int;
2014-12-02 11:32:25 369
原创 14周项目二
换了选择排序做的题因为第二遍做遍历的时候 手残打成了从0开始。导致排序失败= =来回找不到错位在哪里,思维定式。没难度的题目做了三个小时也是要死要死的。感觉真是爽爆了#include #include using namespace std;int main(){ int i,key,j; double k; const int num=8; s
2014-11-30 16:28:25 372
原创 数组大折腾
//#include using namespace std;int main(){ int a[20]= {1,2,3,4,5,6,7,8,9,1};//初始化前10个元素 cout<<"请输入十个整数"<<endl; for(int i=10;i<20;i++) { cin>>a[i]; } for(int i=0;i<
2014-11-24 17:08:26 381
原创 金色十月编程第一题
一个小女孩正在用左手手指数数,从1数到n。她从拇指算作1开始数起,然后,食指为2,中指为3,无名指为4,小指为5。接下来调转方向,无名指算作6,中指为7,食指为8,大拇指为9,如此反复。问最后会停在那个手指上?用编号1、2、3、4、5依次表示大拇指、食指、中指、无名指、小指。输入格式:输入多组数据。每组数据占一行,只包含一个整数n(1输出格式:每组数据占一行,只包含一个介于1和5之
2014-11-04 21:49:52 1050
原创 穷举
#include using namespace std; int main() { int a,b,c,count=0; cout"小明借书给三位小朋友书的方案有:" for(a=1;a//穷举a借5本书中的1本的全部情况 for(b=1;b//穷举b借5本书中的一本的全部情况 for(c=1;c//穷举c借5本书中
2014-10-29 20:08:17 493
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人