![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法分析
beikeshell
这个作者很懒,什么都没留下…
展开
-
Hanoi Tower Sequence
Hanoi Tower Sequence一、问题描述DescriptionHanoi Tower is a famous game invented by the French mathematician Edourard Lucas in 1883. We are given a tower of n disks, initially stacked in decreasin原创 2012-10-23 18:08:26 · 679 阅读 · 0 评论 -
递归函数中的变量调用分析
分析递归函数中的变量调用问题对于我们理解递归函数的执行轨迹和编写递归类程序有着极大的帮助,下面我们就以一个具体的例子来分析所要描述的问题。 我们以马周游问题为例进行分析: 一、马周游问题描述在一个5 * 6的棋盘中的某个位置有一只马,如果它走29步正好经过除起点外的其他位置各一次,这样一种走法则称马的周游路线,试设计一个算法,从给定的起点出发,找出它的一条周游路线。为了便于原创 2013-06-05 23:17:14 · 302 阅读 · 0 评论 -
归并排序
#includeusing namespace std;int merge(int a[],int i,int k,int j){ int* p=new int[j-i+1]; int tmp=0; int m=i; int n=k+1; while(mk) { while(n<=j) { p[tmp]=a[n]; n++; tmp++; } } if(n>j) { while(m=j) {原创 2013-06-05 23:30:53 · 108 阅读 · 0 评论 -
插入排序
#include;using namespace std;void insertSort(int a[],int begin,int end){ for(int i=begin+1;ia[i]) { break; }else { j++; } } if(jj;k--) { a[k]=a[k-1]; } a[j]=tmp; } }}int main(){ int a[10]={5,4,6,7,1原创 2013-06-05 23:08:34 · 96 阅读 · 0 评论 -
中缀表达式转换为前缀表达式
#include#include#include#includeusing namespace std;stackopt;stacksubexp;string InfixToPrefix(string exp,int len){for(int i=len-1;i>=0;i--){if(exp[i]>='0'&&exp[i]<='9'){subexp.push(exp[i]);}else{if(ex原创 2013-06-05 20:33:01 · 130 阅读 · 0 评论 -
中缀表达式转换为前缀表达式
#include#include#include#includeusing namespace std;stackopt;stacksubexp;string InfixToPrefix(string exp,int len){ for(int i=len-1;i>=0;i--) { if(exp[i]>='0'&&exp[i]<='9') { subexp.原创 2013-06-06 13:50:02 · 278 阅读 · 0 评论 -
大整数乘法
#include#includeusing namespace std;int result[200];void mul(string n1,string n2){ unsigned long len1=n1.length(); unsigned long len2=n2.length(); int carry=0; for(int k=len1+len原创 2013-06-14 15:57:26 · 256 阅读 · 0 评论 -
归并排序
#includeusing namespace std;int merge(int a[],int i,int k,int j){ int* p=new int[j-i+1]; int tmp=0; int m=i; int n=k+1; while(m<=k&&n<=j) { if(a[m]<a[n]) {原创 2013-06-06 23:06:37 · 214 阅读 · 0 评论 -
插入排序
#includeusing namespace std;void insertSort(int a[],int begin,int end){ for(int i=begin+1;i<=end;i++) { int j=begin; while(j<i) { if(a[j]>a[i])原创 2013-06-08 00:00:58 · 185 阅读 · 0 评论 -
全排列递归算法实现
全排列递归算法一、题目:用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列(注意:输入的字符串可能有重复字符),如 abc 的全排列: abc, acb, bca, dac, cab, cba二、关于字符串全排列的理解字符串abc的全排列结果为:abcacbbacbcacbacab字符串abb的全排列为:a转载 2012-09-25 09:27:06 · 670 阅读 · 0 评论 -
中缀表达式直接转换为表达式二叉树、前缀表达式、后缀表达式,表达式求值
#include#include#include#include#includeusing namespace std;struct TreeNode{ string key; TreeNode* left; TreeNode* right;};stack opt;stack subexp;stack bracket;stack fun;stack param原创 2013-06-21 14:29:36 · 548 阅读 · 0 评论 -
aaa
#includeusing namespace std;int main(){cout<<"hello world !"<<endl;return 0;}原创 2013-06-06 00:43:18 · 83 阅读 · 0 评论 -
快速排序
#includeusing namespace std;void swap(int &a,int &b){ int tmp=a; a=b; b=tmp; return ;}void quickSort(int a[],int i,int j){ if(i>=j) { return ; }else { int tmp=a[i]; int m=i+1; i原创 2013-06-05 20:41:14 · 162 阅读 · 0 评论 -
堆排序
#includeusing namespace std;void swap(int a[],int i,int j){ int tmp=a[i]; a[i]=a[j]; a[j]=tmp; return ;}int Left(int a[],int p){ return p*2;}int Right(int a[],int p){ return p*2+1;}原创 2013-06-05 20:35:24 · 175 阅读 · 0 评论 -
递归详解
递归详解计算机科学的新学生通常难以理解递归程序设计的概念。递归思想之所以困难,原因在于它非常像是循环推理(circular reasoning)。它也不是一个直观的过程;当我们指挥别人做事的时候,我们极少会递归地指挥他们。对刚开始接触计算机编程的人而言,这里有递归的一个简单定义:当函数直接或者间接调用自己时,则发生了递归。递归的经典示例计算阶乘是递归程序设计的一个经典示例。计算某个转载 2012-12-13 13:40:52 · 246 阅读 · 0 评论 -
递归函数中的变量调用分析
递归函数中的变量调用分析 分析递归函数中的变量调用问题对于我们理解递归函数的执行轨迹和编写递归类程序有着极大的帮助,下面我们就以一个具体的例子来分析所要描述的问题。我们以马周游问题为例进行分析: 一、马周游问题描述在一个5 * 6的棋盘中的某个位置有一只马,如果它走29步正好经过除起点外的其他位置各一次,这样一种走法则称马的周游路线,试设计一个算法,从给定的起点出发原创 2012-12-15 13:16:33 · 427 阅读 · 0 评论 -
中缀表达式直接生成表达式二叉树
#include#include#includeusing namespace std;struct TreeNode{ char key; TreeNode* left; TreeNode* right;};stack opt;stack subexp;stack bracket;//检查表达式中括号是否匹配bool TestBrackets(string ex原创 2013-06-08 18:09:32 · 751 阅读 · 0 评论 -
更复杂的中缀表达式转换为表达式二叉树
#include#include#include#includeusing namespace std;struct TreeNode{ string key; TreeNode* left; TreeNode* right;};stack opt;stack subexp;stack bracket;stack fun;stack param;bool T原创 2013-06-08 21:09:30 · 263 阅读 · 0 评论 -
更复杂的中缀表达式转换为表达式二叉树
这个版本中的程序实现了将更复杂的中缀表达式直接转换为表达式二叉树,主要做了以下改进:一、将中缀表达式直接转换为表达式二叉树二、表达式操作数可以为标识符,函数调用(对于函数调用,仅仅将函数调用实现为一个节点,而没有进一步分析参数列表中的参数)三、实现了表达式二叉树的前缀(波兰式)、中缀、后缀(逆波兰式)输出具体程序如下:#include#include#include#incl原创 2013-06-09 18:57:39 · 518 阅读 · 0 评论 -
大整数加减法
#include#includeusing namespace std;void swap(string& str1,string& str2){ if(str1.length()<=str2.length()) { string tmp=str1; str1=str2; str2=tmp; return ;原创 2013-06-14 12:18:30 · 289 阅读 · 0 评论 -
大整数加减法运算
#include#includeusing namespace std;void swap(string& str1,string& str2){ if(str1.length()length()) { string tmp=str1; str1=str2; str2=tmp; return ; }else {原创 2013-06-14 01:21:45 · 305 阅读 · 0 评论 -
中缀表达式转换为前缀表达式
#include#include#include#includeusing namespace std;stackopt;stacksubexp;string InfixToPrefix(string exp,int len){for(int i=len-1;i>=0;i--){if(exp[i]>='0'&&exp[i]<='9'){subexp.push(exp[i]);}else{if(ex原创 2013-06-05 20:21:11 · 153 阅读 · 0 评论 -
中缀表达式转换为前缀表达式
#include#include#include#includeusing namespace std;stackopt;stacksubexp;string InfixToPrefix(string exp,int len){ for(int i=len-1;i>=0;i--) { if(exp[i]>='0'&&exp[i]<='9') { subexp.原创 2013-06-05 20:23:18 · 108 阅读 · 0 评论 -
中缀表达式转换为前缀表达式
#include#include#include#includeusing namespace std;stackopt;stacksubexp;string InfixToPrefix(string exp,int len){ for(int i=len-1;i>=0;i--) { if(exp[i]>='0'&&exp[i]<='9') { subexp.原创 2013-06-05 20:25:43 · 110 阅读 · 0 评论 -
中缀表达式转换为后缀表达式
#include#include#include#includeusing namespace std;stackopt;stacksubexp;string InfixToPrefix(string exp,int len){ for(int i=len-1;i>=0;i--) { if(exp[i]>='0'&&exp[i]<='9') { subexp.原创 2013-06-05 20:29:50 · 101 阅读 · 0 评论