比牛比更牛比

要多牛比就多牛比
网 志 分 类
最 新 的 评 论
搜 索
友 情 链 接
订阅 与 统计
订阅 RSS

0004172

歪酷博客

牛犊子 @ 2009-04-20 22:13

笔者都是使用记有好友Email地址的Excel文件自动给亲友发送电子邮件,这种方法不仅方便快捷,而且这些邮件的收件人、主题、内容、附件都不相同。   一、建立亲友通讯录   在工作表中建立一个包含不同收件人、主题、内容和附件的亲友通讯录。   二、使用宏实现自动发送电子邮件   打开“工具→宏→Visual Basic编辑器”,单击“插入→模块”插入一个模块,在“工程”窗口中双击插入的模块,打开它的代码窗口,并输入以下宏:   Sub 全自动发送邮件()   "要能正确发送并需要对Microseft Outlook进行有效配置   On Error Resume Next   Dim rowCount, endRowNo   Dim objOutlook As New Outlook.Application   Dim objMail As MailItem   "取得当前工作表与Cells(1,1)相连的数据区行数   endRowNo = Cells(1, 1).CurrentRegion.Rows.Count   "创建objOutlook为Outlook应用程序对象   Set objOutlook = New Outlook.Application   "开始循环发送电子邮件   For rowCount = 2 To endRowNo   "创建objMail为一个邮件对象   Set objMail = objOutlook.CreateItem(olMailItem)   With objMail   "设置收件人地址(从通讯录表的“E-mail地址”字段中获得)   .To = Cells(rowCount, 2)   "设置邮件主题   .Subject ="新年好![来自朋友弗人的问候] "   "设置邮件内容(从通讯录表的“内容”字段中获得)   .Body = Cells(rowCount, 3)   "设置附件(从通讯录表的“附件”字段中获得)   .Attachments.Add Cells(rowCount, 4)   "自动发送邮件   .Send   End With   "销毁objMail对象   Set objMail = Nothing   Next   "销毁objOutlook对象   Set objOutlook = Nothing   "所有电子邮件发送完成时提示   MsgBox rowCount-1 && "个朋友的问候信发送成功!"   End Sub   以上代码在Excel 2000中执行通过,并且对“通讯录”和“全自动发送邮件”宏代码稍作修改就可以完成任何形式的大量邮件的发送。


 
牛犊子 @ 2008-04-16 20:33

http://help.allegheny.edu/tutorials/latex/configure.php


 
牛犊子 @ 2007-05-05 10:43

http://www.bullog.cn/blogs/huangjiwei/archives/53527.aspx
对流血一周仍然不死的动物千万不能大意……
我们产生一点小分歧:她希望我把粪土变黄金,我希望她视黄金如粪土。
不要把银行卡的密码设成女友的生日,不然总要换很麻烦。
我的爱人都叫我第三者!
听说女人如衣服,兄弟如手足,回想起来,我竟然七手八脚地裸奔了19年!
琴棋书画不会,洗衣做饭嫌累。
给我一个姑娘,我可以创造一个民族。
你放心,看到你我连食欲都没了,还谈什么性欲!
虽在裸睡中,但即插即用……
我不能给你幸福,但可以给你舒服!
我想早恋,但是已经晚了……
为配合今年中国计划生育工作的胜利完成,本人决定暂时不和异性朋友接触,谢谢合作。
长大了要嫁给唐僧,能玩就玩,不能玩就把他吃掉。
如果谈恋爱就是谈恋爱的话,那不是耍流氓吗?
征婚启事:要求如下,A活的,B女的
我要是妞,早爱上我了……
我减肥已取得了很大的成功,你看,我三个下巴都尖了!
巧克力的麻烦是:你把它吃了,它就没了。
天哪!我的衣服又瘦了。
以后不要在我面前说英文,OK?
我的车发出了手扶拖拉机的声音
找房等于找死
有事秘书干,没事干秘书。
巫师,请转告公主,老子还在披荆斩棘的路上,还有雪山未翻、大河未过、巨龙未杀、美女未泡……叫她继续死睡吧!
五马分尸中——你来一块不?
流逝的流年流淌着流传的流言~流浪的流氓继续着流亡
只有在大排长龙时,才能真正意识到自己是“龙的传人”。
脑袋空不要紧,关键是不要进水啊!
一失足成千古风流人物
多情总被无情搞
一人吃饭一人当
往事不要再骑,人生已多稀泥。
小姐的胡须长得如此委婉,想必是位大家闺秀咯
善良的人们总是说我单纯,其实我知道他们只是不好意思说我傻逼。
夜长尿多
砸锅卖铁奔小康
黑夜给我我黑色的眼睛,我却用它来寻找黑社会
欲Go从速
孔雀东南飞》里的小吏是怎么死的?他妈逼的!
天天长胖,越来越像个有钱人了
股市猛于虎,房市猛于股
多情应笑我,早日脱发
你想念的人已不在服务区
人乳负重
你不是本党党员,本党就要把你发展进来。你要是本党党员,本党就要把你开除出去
我的钞票总是很湿 因为给钱的时候他总是哭得厉害
长江长江,我是黄河,我是黄河,靠,我真是黄河~~
天堂还是天堂,只是人间已经变了模样
我信且赖你
花钱如流水,挣钱如抽丝……
吃罢早饭吃中饭,吃罢中饭吃夜饭,夜饭吃过困觉哉,困觉起来吃早饭。
不让吃猪肉了,看猪跑吧。
找个小板凳带到21世纪。
群众的眼镜是雪亮的
踏遍青楼人未老,请用汇仁肾宝
生活像场夜宴,但是十面埋伏
桃李不言,鸦雀无声
主治:包皮过多,包皮过旧,包皮过硬,包皮过老,包皮过脆,包皮过厚,包皮过涩,包皮过糙……
饥不择食,时不我待
需要休假就跟老板提,需要拥抱就跟老公说
挤车时真恨爹娘多生了条腿。
21世纪什么最贵?——板凳!
人心隔肚皮,又岂在朝朝暮暮。
该同船渡就同船渡,该共枕眠就共枕眠,别在那儿自个儿整事儿!
吾生也有涯,而吃也无涯
丰胸化吉
诺贝尔长期脱机奖
有情人终成家属
人怕除名 猪怕撞
太上皇带三个表,万岁爷穿八尺绒
我的网络,不听我的!
禁了八本书,就一个女人敢拚命
不要和地球人一般见识
大哥,要幸福不?
士为知己者装死女为悦己者整容
王朔之下,岂有完卵
给点阳光我就腐烂
依然饭特次
世界没错,我错了
叮叮当,叮叮当,穷的响叮当
以貌娶人
巧妇难为无米之欢
乌蒙磅礴逗你玩
一哭二闹三上网
出片写稿递鲜花 斟茶递水也靠她 里里外外一把手 累出脑浆子也没人夸
一枪闺怨
重合同,守性欲
敌进我进,敌驻我驻,敌疲我疲,敌退我退。
我的电脑是蓝屏的
宝贝儿 等发工资了我就带你去洗澡
玩儿去吧,我的艾斯美拉达~
你去青春你的青春吧我来衰老我们的衰老
吃到吱吱叫 吃到嗷嗷儿吐哪TM那么多不成文的规定!
老板,来杯豆,加点奶茶。江湖险恶不行就撤
锻炼身体 参加春运
原来求婚是一个男人对女人的最大赞美……那跟男人搞婚外情是对这个男人的最大赞美咩?
唐伯虎喜看金山农民画 袁中郎盛赞林县红旗渠
理论的瘦子,行动的胖妞。
女人你是华丽的钻,还是烧完的碳?!
书山有路尔不走 学海无涯自来投
一睡如故.姿势和嗜好都很熟悉
明朝那些事儿妈
话不糙,理糙!
我老了 很想你
屁眼里都流露出才华
我们大踏步地后退是为了小碎步地前进
黑夜给了我黑色的眼圈
因为烧香太多,熊猫被禁止参加春运
春江水暖丫先知
变焦基本靠走 防抖基本靠手
我的脖子上也曾有淤青,然后两个男人差点打起来
一懒无娱
我的青春 与你无关
二到尽头 覆水难收
大城小二
特别的二给特别的你
也曾伤心流泪,也曾黯然心碎,这是,二的代价。
你的小孩现在是吃人奶还是你的奶
我的小手冰凉像你的眼神一样
不看照片,怎知春色如许
不想当厨子的裁缝,不是好司机。
小飞刀说起他烧的羊肉,眼神便有点朦胧。
不怀旧,不泡网,不纵饮
有些地方自盘古开天以来就没有明白人
敢问谱儿在何方啊我的姐姐
岁寒三友——火锅、白菜、热被窝。
妇女节前思妇女,元宵节后忆元宵。
奉旨学雷锋
将薪比薪
捏住命运的睾丸!各位女同胞们,你们又三八了。
禅是一枝花,觉悟靠大家
央视名句:人家是闻鸡起舞,季羡林是鸡闻他起舞
摇啊摇 摇到奈何桥
家徒四壁 颐养天年
空山新雨后,自挂东南枝
人生已多风雨 我知道真不赖你
卡巴斯基互联网安全套,装6.0个人版
别介,司徒雷登
蟑螂都不怕蟑螂药了,我们却连维生素都搞不定
一人之上,万人之下
一半是海水,一半是海螃蟹
我姓对,叫对你好。
生日,并努力快乐着
春风桃李花开日,春江水暖鸭先知。春花秋月何时了?春潮带雨晚来急。
你快回来,我一人忽悠不来
真羡慕你这么年轻就认识我了
每个人的心中,都有一把青冥剑、一座断背山、一处江南
远看是电脑,近看是电脑,电脑是电脑,可就是什么程序都他妈不能跑。
中华人民共和国小卖部副部长
少他妈给老子在A与C之间装B!
我的地盘儿,我也不知道听谁的。
我的地盘儿,听你的。
忙里偷情 苦中做爱
请尽快补办幼儿园结业证,谢谢
我左八荣,右八耻,代表在腰间,和谐在胸口,人挡杀人,佛挡杀佛
我的爱情过程是文艺片、喜剧片、三级片、A片、悬疑片、动作片,最后是KB片,更可气的是,还插播广告……
我们是清晨两、三点钟的太阳
我住大环猫熊岛
我成了自己最恨的人
工欲善其事,必先利其服务器
您老长了个包子样儿就别尽抱怨后边有狗追啊!
“我爱你。”"SB。”"你MB!”我饿了 快给我准备些童男童女来~~~~
我要做A片男二号
要适当吃一点,才有劲减肥啊
与其生活在别处 不如做一钉子户
又回到了每天晚上听着收音机做模型的年代
流年不利,乐在其中
书是越学越厚,人是越坐越肥!
秀外慧中,仁厚其间,彪悍不改
女子无德便是才!
东北人都是活雷公
当我死了以后,我要时常记起活着时的快乐
不知其二
百代公司特请王佩臣演唱铁片儿大鼓《一半是火焰,一半是海水
男主内,女主外,毛主席
试做文化人:1、平心静气2、潜心研习3、被骂全当听回拉洋片4、被打三分钟以上再动手
诚征专业枪手写老颓婚礼贺文
子贡问仁,子曰:这次节目播送完了。
人在江湖,魂不守舍。
什么是低俗之风?我就他妈喜欢低俗的~
我怎么就这么待见您呐~~我的宝贝honey小心肝er脾肺肾
当众的孤独,也就是装了
从前有条河,名叫海
我就是一个人!!!
诀窍就是在忍无可忍时,再忍一忍。
疯了真好!羡慕!!
善没有理由战胜不了恶,只要天使们像黑手党那样组织起来
这个世界傻逼实在太多 而且大部分在中国
夫妻情深,百毒不侵
想当年竹马青梅,卿为佳人,我为才子;到如今枯藤老树,我是败柳,你是残花。
人肥胆囊胖,告别毛血旺。
上帝创造世界的计划中,未必包括使你发财
静如民工,动如天王,面似灾荒不收,实则大富大贵,周董做到了,真不容易啊
毛主席说死人的事是天天发生的
我的家在东北松花蛋上
身未动,心已野
达则孔明,穷则渊明
子在川上曰,他在丛中笑
喂,请问是中国移动吗?我是中国联通,我的小灵通坏了,你们能派中国铁通来修一下吗?
鱼和胸罩不可兼得。
思想有多远,你就给我滚多远!
鸟大了,什么林子都有。
一见钟情,再而衰,三而竭。
皮带瘦肉猪
薯片,我要仁和可立克
人不猥琐枉少年!
一山不能容二虎,除非一公和一母。
钻石恒久远,一颗就破产
十年树木,百年树袋熊
别说吃你几个烂西瓜,老子在城里吃冬瓜都不要钱
爬上奔驰的骏马,象骑上飞快的火车
少年包工头
拿什么拯救你的爱人
拿什么拯救你和我的爱人
给我一个支点,我可以撑起地球仪
人过留名,雁过留声机
谁再用我心爱的土琵琶,弹着一曲东风破
起来,不愿坐着的人们
哈里波霸
早知今日,何必当鸡
穷人的孩子早出家
绞尽乳汁
塞翁失身,焉知非福
常在河边走,哪能不失足
天涯何处无芳草,还是母乳喂养好
外婆家的铜锣湾
听张国荣讲鬼故事
清明上坟图
在这个大喜的日子里,我们感到万分悲痛
来瓶82年的矿泉水
我身在江湖,江湖却没有关于我的传说……
我不是随便的人,但随便起来就不是人。
走别人的路,让别人无路可走。
有一天,我梦见自己的钱花光了,醒来一看,口袋真的空空……
千万别等到人人都说你丑时才发现自己真的丑。
如果朋友可以出卖,每个值五块的话,我也能发笔小财了。
人,生在床上,死在床上,欲生欲死,也在床上。
树不要皮,必死无疑;人不要脸,天下无敌。
无所为而无所谓,无所谓而无所不为。
骚归骚,骚有骚的贞操;贱归贱,贱有贱的尊严。
0岁出场亮相,10岁天天向上。20岁远大理想,30岁发奋图强。40岁基本定向,50岁处处吃香。60岁打打麻将,70岁处处闲逛。80岁拉拉家常,90岁挂在墙上!
自从我变成了狗屎,就再也没有人踩在我头上了。
这个世界上我只相信两个人,一个是我,另一个不是你。
出问题先从自己身上找原因,别一便秘就怪地球没引力。
我以为我很颓废,今天我才知道,原来我早报废了。
别人都在假装正经,那我就只有假装不正经啦。
口袋里没钱,心里也没钱的人,不痛苦;口袋里没钱,心里却有钱的人,最痛苦;口袋里有钱,心里也有钱的人,最烦恼;口袋里有钱,心里却没钱的人,最幸福。
怀才就像怀孕,时间长了才能看出来。
知耻近乎勇知无耻近乎神勇
爷爷都是从孙子走过来的
时间是最好的老师,但遗憾的是——最后他把所有的学生都弄死了。
九九一十八
人,最宝贵的是生病
寡妇门前趣多多
何仙姑倒拔垂杨柳
生于忧患,死与安而乐
鲁智深三打白骨精
还记得年少时的猛犸
我这个人有人气,还有脚气



 
牛犊子 @ 2007-05-05 10:38

在Latex中使用插图的一般步骤
阿诺尔德 @ 2007-5-5 9:20:09 阅读(9) 引用通告 分类: Tex使用心得

在Latex中使用插图的一般步骤

阿诺尔德   


  TEX是Donald E. Knuth(1938- )编写的用于科技文章排版的计算机程序,尤其长于数学公式的排版.现在国际上权威出版社的科技刊物都使用TEX排版.

  Knuth有个中文名字高德纳,据说此名是1977年他访问中国之前所取的,命名者是姚储枫(图灵奖得主姚期智的夫人,据说夫妇都是计算机科学家).在Knuth的个人主页上(http://www-cs-faculty.stanford.edu/~knuth/)也可以看到这个中文名字,这说明此名得到了老头子的认可.

  高德纳是个大牛人,目前保持了计算机图灵奖得奖时年龄最轻的记录,此外还获奖无数.有兴趣者可在网上搜索.由于专业不同,除了TEX,我对他老人家的科学成就一无所知.对于TEX,我是这样认为的,它不仅是一项科技成果,而且因其在审美上达到的程度,它可以被称为是一件艺术品.这可能与高老头本人具有相当高的艺术素养有关.相较之下,word排出的文章版面简直不能看,当然,word易学,这是word的优点.

  下面是我从一本书上截屏所得,

 


  有趣的是,高老头研究TEX排版最初的原因是怕当时(1970年代)糟糕的排版技术损害他的个人著作.1977年3月20日,高老头(当时还可说是青年)收到了他个人著作《计算机编程艺术(The Art of Computer Programming)》第二卷的校样(proofs).那天,他的日记中有这样一句话:

  第二卷的校样终于到了,它们看起来糟糕透了(排版上)……

  于是,那一年,高青年放下手头工作,开始设计TEX系统.他最初想在1978年就完成这一工作,然而,在十多年之后的1989年,TEX语言才最终定型.

  更有趣的是,高老头从正事上跑出来做另外的事——下面简称歪事,并不仅此一例.高老头厉害就厉害在,他搞出来的歪事中多有精品——TEX可以作证.高老头具有的另一难能可贵的品质是,看淡金钱——TEX是免费的.可以想象,如果他向各大出版社收钱,总数目会相当惊人.对于此事,请看他老人家的说法:

  一旦一个人能够喂饱自己,能够有个安身之所,剩下的就是他能为別人做些什么,如何能为群体做出一些贡献了.

  高老头真是个好人.做歪事花费了高老头大量的时间.1990年起,高老头停止自1975年就开始使用的电子邮件.1993年,高老头提前退休以便有充足时间完成他计划出版的《计算机编程艺术(The Art of Computer Programming)》的后续卷册.

  一篇网文(http://www.topjoy.net/index.php/action_viewthread_tid_318.html)中有这样一段话:

微软首席执行官比尔•盖茨在1995年接受一次采访时说,“如果你认为你是一名真正优秀的程序员,就去读第一卷,确定可以解决其中所有的问题。”值得注意的是,盖茨本人读这本书时用去了几个月的时间,并同时进行了难以置信的训练。盖茨还说:“如果你能读懂整套书的话,请给我发一份你的简历。”

  高老头是个大牛人,精力超级过剩的大牛人.他好比就是武侠小说中的绝顶高手.《射雕英雄传》中,黄蓉得知那馋嘴中年乞丐就是洪七公时,曾讶异于其年龄之轻,后联想到自己父亲年岁也不大,再看看全真七子江南七怪的修为,黄蓉感叹道:他们(全真七子江南七怪)的年纪都活到狗身上了.如果这个比喻过于恶毒,请找金庸算账.当然了,拿普通人与高老头相比,是不公平的.我也做过一些不像样的科学研究,看到高老头的成就,我实在感到汗颜,并感叹上天之不公:为什么我的天赋就这么差?同时,我也知道,正是因为高老头这样高手的存在,这个世界看起来才不是那么庸俗可憎,他们让我们在无望中看到希望.

  言归正传.

  由于毕业论文中需要插入一些图片,我简单学习了一下如何在Latex中使用插图.下面列出步骤(部分内容来源于网络,恕不一一列出出处):

  1. Tex支持最好的是.eps格式的图片,所以,如果你手头的图片不是.eps格式的,例如.jpg  .bmp等,你首先需要把它们转成.eps格式,转换的方法很多,我只会虚拟打印的方法:

  1.1 安装虚拟打印机:控制面板->打印机和传真->鼠标右击->添加打印机->连接到此计算机的本地打印机->端口:FILE:(打印到文件)->然后选择一个ps打印机, 推荐HP Color LaserJet 8550-PS, 可以打彩色, 剩下的选项根据自己的需要随便选,完成安装。

  1.2 设置: 记得在打印前要进行下列设置:打印机和传真->右击HP LaserJet 8550-PS->属性->常规->打印首选项->布局->高级->文档选项->PostScript选项->PostScript输出选项,请选'内嵌的PostScript(EPS)' (转为eps图, 质量较好)
  1.3 打印与转换:使用这个打印机将要转换的图片打印到文件,例如D:/picture/file.ps

  1.4 把打印完成的ps文件用ghostview打开,点文件->ps to eps,并选中自动检测边界。这样就实现了 .jpg 转化为 .eps.

  2. 将.ps插入到TEX文件中

  2.1 将转换好的.eps文件(如p1.eps)与你的TEX文件放置在同一文件夹

  2.2 在TEX源文件中希望出现图片的地方加入如下语句,当然,你TEX源文件的导言部分首先要加入graphics宏包(\usepackage[dvips]{graphicx}).

  \includegraphics[angle=90,width=0.65\textwidth]{p1.eps}

这里angle=90表示原图顺时针旋转90度,width=0.65\textwidth表示图形的宽度为文本宽度的0.65,更多的参数选择可参看《Latex2e插图指南》一书,

  如果你希望你的图形有名有姓并且可以实现交叉引用,可以使用Latex的图形环境

\begin{figure}[htbp]
\centering %图形居中
\includegraphics[angle=90,width=0.65\textwidth]{p1.eps}
\caption{美女图片} \label{meinv}
\end{figure}

这样,经编译后,你的dvi文件中会出现一个名为"美女图片"的图片,如果你之后需要引用它,只需要\ref{meinv}命令即可.




 
牛犊子 @ 2007-04-11 11:14

堆排序

1
堆排序定义
   
 n个关键字序列KlK2Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质)
   
 (1) ki≤K2iki≤K2i+1 (2)Ki≥K2iki≥K2i+1(1≤i≤ )

   
 若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。

【例】关键字序列(101556253070)(705630251510)分别满足堆性质(1)(2)

2、大根堆和小根堆
   
 根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最小者的堆称为小根堆。
   
 根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者,称为大根堆。
 
注意:
   
 堆中任一子树亦是堆。
   
  以上讨论的堆实际上是二叉堆(Binary Heap),类似地可定义k叉堆。

3
、堆排序特点
   
 堆排序(HeapSort)是一树形选择排序。
   
 堆排序的特点是:在排序过程中,将R[l..n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系【参见二叉树的顺序存储结构】,在当前无序区中选择关键字最大(或最小)的记录。

4
、堆排序与直接插入排序的区别
   
 直接选择排序中,为了从R[1..n]中选出关键字最小的记录,必须进行n-1次比较,然后在R[2..n]中选出关键字最小的记录,又需要做n-2次比较。事实上,后面的n-2次比较中,有许多比较可能在前面的n-1次比较中已经做过,但由于前一趟排序时未保留这些比较结果,所以后一趟排序时又重复执行了这些比较操作。
   
 堆排序可通过树形结构保存部分比较结果,可减少比较次数。

5、堆排序
   
堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。

1)用大根堆排序的基本思想
先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区
再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,由此得到新的无序区R[1..n-1]和有序区R[n],且满足R[1..n-1].keys≤R[n].key
由于交换后新的根R[1]可能违反堆性质,故应将当前无序区R[1..n-1]调整为堆。然后再次将R[1..n-1]中关键字最大的记录R[1]和该区间的最后一个记录R[n-1]交换,由此得到新的无序区R[1..n-2]和有序区R[n-1..n],且仍满足关系R[1..n-2].keys≤R[n-1..n].keys,同样要将R[1..n-2]调整为堆。

    ……
直到无序区只有一个元素为止。

2)大根堆排序算法的基本操作:
初始化操作:将R[1..n]构造为初始堆;
每一趟排序的基本操作:将当前无序区的堆顶记录R[1]和该区间的最后一个记录交换,然后将新的无序区调整为堆(亦称重建堆)
 
注意:
只需做n-1趟排序,选出较大的n-1个关键字即可以使得文件递增有序。
用小根堆排序与利用大根堆类似,只不过其排序结果是递减有序的。堆排序和直接选择排序相反:在任何时刻,堆排序中无序区总是在有序区之前,且有序区是在原向量的尾部由后往前逐步扩大至整个向量为止。

3)堆排序的算法:
  void HeapSort(SeqIAst R)
   { //
R[1..n]进行堆排序,不妨用R[0]做暂存单元
    int i

    BuildHeap(R)
//R[1-n]建成初始堆
    for(i=n;i>1
i--){ //对当前无序区R[1..i]进行堆排序,共做n-1趟。
      R[0]=R[1]
R[1]=R[i];R[i]=R[0] //将堆顶和堆中最后一个记录交换
     Heapify(R1i-1) //R[1..i-1]重新调整为堆,仅有R[1]可能违反堆性质
     } //endfor
   } //HeapSort

4 BuildHeapHeapify函数的实现
 因为构造初始堆必须使用到调整堆的操作,先讨论Heapify的实现。
Heapify函数思想方法
 每趟排序开始前R[l..i]是以R[1]为根的堆,在R[1]R[i]交换后,新的无序区R[1..i-1]中只有R[1]的值发生了变化,故除R[1]可能违反堆性质外,其余任何结点为根的子树均是堆。因此,当被调整区间是R[low..high]时,只须调整以R[low]为根的树即可。
"
筛选法"调整堆
  R[low]的左、右子树(若存在)均已是堆,这两棵子树的根R[2low]R[2low+1]分别是各自子树中关键字最大的结点。若R[low].key不小于这两个孩子结点的关键字,则R[low]未违反堆性质,以R[low]为根的树已是堆,无须调整;否则必须将R[low]和它的两个孩子结点中关键字较大者进行交换,即R[low]R[large](R[large].key=max(R[2low].keyR[2low+1].key))交换。交换后又可能使结点R[large]违反堆性质,同样由于该结点的两棵子树(若存在)仍然是堆,故可重复上述的调整过程,对以R[large]为根的树进行调整。此过程直至当前被调整的结点已满足堆性质,或者该结点已是叶子为止。上述过程就象过筛子一样,把较小的关键字逐层筛下去,而将较大的关键字逐层选上来。因此,有人将此方法称为"筛选法"
  
  具体的算法【参见教材】

BuildHeap的实现
  要将初始文件R[l..n]调整为一个大根堆,就必须将它所对应的完全二叉树中以每一结点为根的子树都调整为堆。
  显然只有一个结点的树是堆,而在完全二叉树中,所有序号  的结点都是叶子,因此以这些结点为根的子树均已是堆。这样,我们只需依次将以序号为   -11的结点作为根的子树都调整为堆即可。
   
  具体算法【参见教材】。

5
、大根堆排序实例
   
 对于关键字序列(4213249123160588),在建堆过程中完全二叉树及其存储结构的变化情况参见【动画演示】。

6
算法分析
   
 堆排序的时间,主要由建立初始堆和反复重建堆这两部分的时间开销构成,它们均是通过调用Heapify实现的。
  
   堆排序的最坏时间复杂度为O(nlgn)。堆排序的平均性能较接近于最坏性能。
   
 由于建初始堆所需的比较次数较多,所以堆排序不适宜于记录数较少的文件。
   
 堆排序是就地排序,辅助空间为O(1)
   
 它是不稳定的排序方法。

 




 
牛犊子 @ 2007-03-22 15:40

Modifications made in the spring and summer of 2006 have changed the VMware Tools installation procedure for Ubuntu users. The sequence of events is now as follows:

For the VMware Tools installation, the physical CD has to be disconnected. If necessary, shut down Ubuntu, deselect "Connect at power-on" in the CD icon and restart Ubuntu.

In Ubuntu, open a Terminal (Applications | Accessories | Terminal).
For your own verification, obtain your kernel number with the command "uname -r" (it should be a number like 2.6.15-27-386).
Open the Synaptic Package Manager (System | Administration | Synaptic Package Manager), search for "linux-headers", and mark for installation "linux-headers-386" (or -686 if you're on a 64-bit machine). This will also automatically activate the installation of the linux-headers appropriate to your kernel number.

Also in the Synaptic Package Manager, search for "gcc" and mark this package for installation. This will also activate the installation of the current version of gcc, e.g., "gcc-4.0".

Click on "Apply" in the Synaptic Package Manager to install the selected entries.
In the Terminal, compile the development package with "sudo apt-get install build-essential". Answer "y" (yes) to complete the installation of the extra packages.

CTRL-ALT to exit Ubuntu and select "VM | Install VMware Tools... | Install" in VMware Server. This opens a virtual CD-ROM on your Ubuntu Desktop containing the VMware Tool installation kit.

Open the virtual CD-ROM. Two versions of the Tools are presented. In Ubuntu, we use the *.tar.gz version of the Tools. Drag this Tools-file into the Ubuntu Desktop. Double-click the file to open it and extract the contents ("vmware-tools-distrib") via a right-click on the file to your Ubuntu Desktop.

In the Terminal, navigate into the VMware Tool installation kit with "cd Desktop/vmware-tools-distrib".

Install the tools with "sudo ./vmware-install.pl". Accept all default answers to all the question by pressing [Enter]. This will cause Ubuntu to recompile the kernel with the VMware Tools.

Select the screen size you prefer. A good recommendation is to choose the largest screen resolution of any of your monitors. Below I'll explain how the screen can be resized.

Start VMware Tools with "/usr/bin/vmware-toolbox" and select the features you desire. I found it useful to enable time synchronization between Ubuntu and Windows. The "Devices" tab lets you mount extra CD drives like RAM disks.
Also, this toolbox must be active if you want to copy-paste between the host and the guest systems. I added "/usr/bin/vmware-toolbox" to the Ubuntu startup programs through System | Preferences | Sessions | Startup Programs, and keep the toolbox running all the time while I'm in Ubuntu.

Put the Tools files on your Desktop in the trash. Restart Ubuntu. VMware Tools is installed.
Once that's all done, you can sit back and work away in Ubuntu on one big screen and in Windows in the other. Cursors move easily. Speed is... shall we say, surprising. And it hasn't cost you a dime, just some time and some experimentation. Well, barely any.

http://homepage.sunrise.ch/mysunrise/ekeller00/ubuntu/2a_UbuntuInWindows_VMware_e.html



 
牛犊子 @ 2007-03-21 16:43

方法一: 我使用的是Vmware4.5,在硬盘中划分了10G的空间给它, 在使用中需要和宿主系统WindowsXP交换信息。
除了配置共享文件夹外,还可以使用U盘。 在虚拟机识别出USB之后,用 fdisk -l /dev/sdb 或 fdisk -l /dev/hdb 查看,会看到U盘被识别为sdb1,使用mount命令挂载即可,先在/mnt建一个新的文件夹,例如usb 则可通过: mount -t vfat /dev/sdb1 /mnt/usb 挂载上U盘 

方法二: 安装VMWare tools,设置共享文件夹,然后在linux中的/mnt/hgfs下可以查看到共享内容(具体看看vmware的帮助) VMWare Tools的安装过程 
######################################## ……
启动vmware,进入vmware里的linux系统里,然后选"File"-"Install vmware tools"的那个选项,会弹出个对话框,按"Install"就行(选这个选项其实是虚拟一张光 盘在/dev/cdrom里,这张虚拟光盘里有虚拟驱动),然后就: mount /dev/cdrom /mnt/cdrom (将虚拟光盘挂上) cd /mnt/cdrom ls 应该会看见一个vmware-linux-tools.tar.gz将它拷贝到/tmp目录下,然后 tar zvxf vmware-linux-tools.tar.gz得到一个名字类似vmware-tools-distrib的目 录 进入这个目录下,运行vmware-install.pl,(执行该命令前请确保你安装了内核源码 ,和开发工具包)一般来说,这个脚本会自动检测出你的linux版本,自动安装相应的 驱动,一路确认就可以…… ######################################## 

方法三:最笨的办法就是利用邮箱了,从主机向自己的邮箱法邮件,把文件放在附件里;再到虚拟机里,打开邮箱收取邮件,文件不就共享了吗。 

方法四: 配置Samba服务器.利用Samba可以实现以下功能: 1.把L下文件共享给W; 2.在L下访问W的共享文件; (关于打印机的就不说了): 

方法五: 在vmware的LINUX中使用本地硬盘的FAT分区(bjchenxu) 将本地的FAT分区共享,然后在VMWARE中使用SMBFS挂上。可以将如下的行放到/etc/fstab中: //win_ip/D$ /mnt/d smbfs defaults,auto,username=win_name,password=win_pass,codepage=936,iocharest=gb2312 0 0 其中win_ip是你的windows的IP地址; D$是你的windows里面共享的D盘的共享名; /mnt/d是要将该分区mount到linux的目录; win_name和win_pass是你的WINDOWS里面可以读取该分区的用户,比如你的管理员名和密码。如果你运行了/etc/rc.d/init.d/netfs,那么在启动的时候就会自动挂载这个分区。 

方法六: VMWare-mount映射虚拟系统   
我们可以在虚拟系统中通过设置来使用本机中的资源(可以通过设置共享来映射本机的硬盘或者文件夹作为虚拟机中的磁盘),但有的时候,我们还需要在本机中使用虚拟系统中的资源,那我们该如何操作呢?不用着急,完全可以将虚拟系统中的磁盘映射到本机中供我们使用。   
首先下载并安装VMware-mount(下载地址:http://download3.vmware.com/software/wkst/VMware-mount-5.0.0-12888.exe),由于VMware-mount并不是windows程序,所以暂时不能使用。
不过只要我们依次点选“开始”|“运行”选项,然后输入并执行“CMD”命令,在MS-DOS窗口中进入到VMware-mount程序所在文件夹,接着输入并执行如下命令:vmware-mount s: “D:\VMware\OS\Windows XP Professional.vmdk”其中“D:\VMware\OS\Windows XP Professional.vmdk”就是我们先前创建的虚拟机,如果输入命令没有错误的话,即可完成将虚拟机的硬盘映射到本机硬盘的操作(如图9)。
如果想要将该映射的硬盘断开,我们只要在MS-DOS窗口中输入并执行如下命令即可完成断开:“vmware-mount s: /d” 图9 映射虚拟机硬盘   

小提示:当然,除了映射功能之外,VMware-mount还有其它强大功能,只要在MS-DOS窗口中输入并执行如下命令:vmware-mount /?,之后即可查看相关的帮助提示(如图10)。