首页 > 编程知识 正文

将中缀表达式转化为后缀表达式,伪代码可以描述算法吗

时间:2023-05-04 03:06:57 阅读:38577 作者:663

通过根据伪代码编写程序,实现的功能是合并排序,输出RES。 (RES可能是用来记录要素被交换了多少次,但本人不太清楚。 当然,这不影响这个问题的制作。 )

输入样例:

10

8 2 5 4 10 2 9 4 3 10 输出样例:

41

1、数组b使用静态数组。 # includeiostreamusingnamespacestd; longlongf(longlonga[],int l,int mid,int r ) {long long i=l,j=mid,k=0,res=0; int b[r]; while(imidjr ) if ) a[I]a[j] ) b[k ]=a[i ]; else {b[k ]=a[j ]; res =mid - i; }while(imid ) {b[k ]=a[i ]; (while ) Jr ) b(k )=a ) j; }for(intI=0; I=中小学; I ) a(LI )=b (I ); }返回RES; ) longlongh(longlonga[ ),int l,int r ) ) {long long res=1; if(L1==r )返回RES; if(LR ) {intmid=) LR )/2; RES=h(a,l,mid ); RES=h(a,mid,r ); RES=f(a,l,mid,r ); }返回RES; (}int main ) ) {int n; scanf('%d ',n ); 龙龙a [ n ]; for(intI=0; in; I ) Scanf('%lld ',a[i]; }printf('%lld(n ),h ) a,0,n ); 返回0; (/*1082541029310 )/2,数组b的动态数组,但# include iostream # includevectorusingnamespacestd; 泰普德夫龙龙LL; llf(inta[],int l,int mid,int r ) ) intI=l,j=mid; ll res=0; vectorll b; while(imidjr ) if ) a[I]a[j] ) b.push_back ) a[I]; ELSE{b.push_back(a[j] ); res =mid - i; }while(imid ) b.push_back ) a[I]; }while(Jr ) b.push_back ) a[j]; }for(intI=0; i=b.size ()-1; I ) a(LI )=b (I ); }返回RES; (llh ) inta[(],int l,int r ) {ll res=1; if(L1==r )返回RES; if(LR ) {intmid=) LR )/2; RES=h(a,l,mid ); RES=h(a,mid,r ); RES=f(a,l,mid,r ); }返回RES; (}int main ) ) {int n; scanf('%d ',n ); int a[n]; for(intI=0; in; I ) Scanf('%d ',a[i]; }printf('%lld(n ),h ) a,0,n ); 返回0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。