好玩的vbs特色代码第1/6页
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
,scheme endif next setaa=scheme endfunction ''setD=CreateObject("Scripting.Dictionary") ''D.Exists( sublink(D1,D2) ''输入:D1结构体Dictionary ''输入返回:D2结构体Dictionary foreachKinD1.Keys ifnotD2.Exists(K)thenD2.addK,D1.Item(K) next endsub functionback(K,T,L) ''输入:K步骤序列string ''输入:T上步骤执行时间int ''输入:L可选择的人员名单string ''输出:返回后的结构体Dictionary setscheme=CreateObject("Scripting.Dictionary") dimtempArr:tempArr=split(L) foreachiintempArr onceTime=personTime(cint(i))+T P=trim(K&""&i) lBank=otherBank(L)&""&i rBank=otherBank(lBank) scheme.AddP,Array(onceTime,lBank,rBank,1) next setback=scheme endfunction functionremove(L,i) ''输入:L人员名单string ''输入:i被移出人的编号int ''输出:移出后的人员名单string L=L&"" L=replace(L,i&"","") remove=trim(L) endfunction functionotherBank(L) ''输入:这岸的名单string ''输出:得到另外一个岸边的名单string tempArr=split(L) LL=startBank foreachiintempArr LL=remove(LL,i) next otherBank=LL endfunction functionmaxTime(x,y) ''输入:x,y人的编号int ''输出:得到两个人一次过河的最大时间int a=personTime(cint(x)) b=personTime(cint(y)) ifa>bthenmaxTime=aelsemaxTime=b endfunction functionPtoMan(P) ''输入:P单个方案string ''输出:由两个人名组合的方案string dimtempStr dimbound:bound=ubound(personTime) fori=0tobound forj=0tobound ifi<>jand(partner(i,j)=P)then tempStr=i&""&j exitfor exitfor endif next next PtoMan=tempStr endfunction functionPforRead(P) ''输入:P有空格分隔的方案序列string ''输出:可读懂的方案序列string tempArr=split(P) dimtempStr fori=0toubound(tempArr) if(imod2)=0then tempStr=tempStr&PtoMan(tempArr(i))&"过去" else tempStr=tempStr&tempArr(i)&"回来" endif next PforRead=tempStr endfunction functionpartner(x,y) ''输入两个数,代表组合唯一值,存放到字符串里int ''输出: a=cint(x) b=cint(y) partner=cstr(2^a+2^b) endfunction subshow(D) ''输入:D字典Dictionary ''显示字典中的内容 dimi:i=1 re="<tableborder=1>" re=re&"<tr><td>行号</td><td>过河方案</td><td>花费时间</td><td>左岸状态</td><td>右岸状态</td><td>过河开关</td></tr>" foreachkeyinD.Keys re=re&"<tr><td>"&i&"</td><tdtitle=''"&key&"''>"&PforRead(key)&"</td>" foreachainD.Item(key) re=re&"<td>"&a&"</td>" next re=re&"</tr>" i=i+1 next re=re&"</table>" ppp.innerHTML=re endsub functionD2Arr(D) ''输入:D字典Dictionary ''输出:时间结果数组,第一个元素设置为极小,不参与排序,array dimkArr:kArr=D.keys dimtempArr():redimtempArr(ubound(kArr)+1) tempArr(0)=0 fori=0toD.count-1 tempArr(i+1)=D.Item(kArr(i))(0) next D2Arr=tempArr endfunction subsortA(Arr) ''输入:Arr时间结果数组array ''堆排序,复杂度n*log(n)/log(2),如果8个数就是24次,如果用冒泡是8^2=64次 dimn,i,L,ir,rArr,j n=ubound(Arr) L=int(n/2)+1 ir=n do ifL>1then L=L-1 rArr=Arr(L) else rArr=Arr(ir) Arr(ir)=Arr(1) ir=ir-1 ifir=1then Arr(1)=rArr exitsub endif endif i=L j=2*L whilej<=ir ifj<irthen ifArr(j)<Arr(j+1)thenj=j+1 endif ifrArr<Arr(j)then Arr(i)=A |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于好玩的vbs特色代码第1/6页的所有评论