设万维读者为首页 广告服务 联系我们 关于万维
简体 繁体 手机版
分类广告
版主:
万维读者网 > 灵机一动 > 帖子
表达式的优化处理
送交者: 田苗 2006年12月19日14:24:28 于 [灵机一动] 发送悄悄话

上次我给出了处理表达式的一个方法。当时只考虑方法的正确性,但没有考虑优化,每消掉一项后,就从头开始。如远景城所指出的,那不怎么经济。这里我把那方法改进了一下,每消掉一项后,不再从头开始,消除了不必要的重复扫描。其实在一般情况下,两个方法没有多大区别,因为大多表达式都可以从左到右消项,不需要扫描到很右才处理,所以即使每消掉一项后就从头开始,也没有多少重复。我用实际程序对这方法作了比较,这优化过的方法,大约可以提高效率15%.

另外得说明一下的是,我用了象低级语言的方法,是为了方便描述起见。所谓的“去几”、“去几”,实际意思是在那里按步骤“几”的方法操作。另外在步骤1里的几个测试顺序也变了一下。先测试常见的(数字,操作符),效率也会提高一点。

假定与前面一样。一开始i=1,p,a和b为空(区别于0)。

1:如Q是操作数,去6。
  如Q是操作符(+,-,*,/),去5。
  如Q是左括弧'(',去2。
  如Q是右括弧')',去3。
  如Q是分号';',去4。
  其它,输入的表达式有错。终止。

2:i增加1,使a,b和p为空。回1。

3:如a和b都不空,则根据操作符p,处理a和b,把结果放在Q[i-3],使Q[i-2]和Q[i-1]为空,i=i-3。
  否则(a必定不空),使Q[i-2]=a,使Q[i-1]和Q为空,i=i-2。
  然后去9。

4:如a和b都不空,则根据操作符p,处理a和b,把结果放在Q[i-3],使Q[i-2]和
  Q[i-1]为空,i=i-3,去9。否则(a必定不空),a就是表达式的结果,处理结束。

5:如b为空(a必定不空),去7。否则(必定是a,b和p都不空),去8.

6:如a为空,使a=Q。否则(p必定不空),是b=Q。然后,i增加1,回1.

7:使p=Q,i增加1,回1。

8:如Q比p优先,则使a=b,p=Q,b为空,i增加1,回1。
  否则,根据p值的操作符,处理a和b,把结果放在Q[i-3],使Q[i-2]和Q[i-1]为空,i=i-3,去9。

9:如i等于1,则使a=Q,b,p为空,i增加1,回1。
  否则去10。

10: 如Q[i-1]是左括弧'(',使a=Q,b,p为空,i增加1。
  否则,使a=Q[i-2],p=Q[i-1],b=Q,i增加1。
  然后回1。

0%(0)
0%(0)
笔 名 (必选项): 密 码 (必选项): 注册新用户
标 题 (必选项):
内 容 (选填项):
字体
字号
实用资讯
回国机票$360起 | 商务舱省$200 | 全球最佳航空公司出炉:海航获五星
海外华人福利!在线看陈建斌《三叉戟》热血归回 豪情筑梦 高清免费看 无地区限制
一周点击热帖 更多>>
1 不可描述的张小黑:《西游记》原 屙文哲
2 六親不近是大好事!南懷瑾親口證 屙文哲
3 胭脂【蒲松齡】白話聊齋故事 屙文哲
4 这个就是黄开胜的老婆张圆圆的资 屙文哲
5 1996 级硕士研究生张圆圆访谈 屙文哲
6 彩色宽银幕故事片《胭脂》(浙江 屙文哲
7 我没参加过毛主席的追悼会。原来 屙文哲
8 精选有声小说:【聊斋志异】胭脂 屙文哲
9 呵呵,好啊好啊。能活着跨入2019 屙文哲
10 老景:为什么看不见神和神迹,还 屙文哲
一周回复热帖
1 【数学】求90!(即90的阶乘)的最 gugeren
2 维基百科伪造“人类命运共同体 王玉芳
3 初中物理附加题:复合弓上的滑轮 淼淼淼
4 关于国际基督教福音联盟 王玉芳
5 李陨石《大同宣言》消息树版本 王玉芳
6 【证明】π/4 = 44*arctan(1/57) gugeren
7 【方程论】两题 gugeren
8 关于国际基督教哈利路亚协会 王玉芳
9 这样的人当中共的教育部长能为中 覅覅
10 【几何概率】一个高尔夫球落在 gugeren

关于本站 | 广告服务 | 联系我们 | 招聘信息 | 网站导航 | 隐私保护

Copyright (C) 1998-2025. Creaders.NET. All Rights Reserved.