锘??xml version="1.0" encoding="utf-8" standalone="yes"?>一区二区三区高清,日韩一级免费,亚洲视频免费看http://m.shnenglu.com/yuqilin1228/There is a way...zh-cnSun, 16 Nov 2025 10:48:41 GMTSun, 16 Nov 2025 10:48:41 GMT60Windows Live Writer 鍙戝竷鍗氬(cppBlog,cnblogs)http://m.shnenglu.com/yuqilin1228/archive/2011/08/23/154095.htmlLynnRaymondLynnRaymondMon, 22 Aug 2011 18:06:00 GMThttp://m.shnenglu.com/yuqilin1228/archive/2011/08/23/154095.htmlhttp://m.shnenglu.com/yuqilin1228/comments/154095.htmlhttp://m.shnenglu.com/yuqilin1228/archive/2011/08/23/154095.html#Feedback0http://m.shnenglu.com/yuqilin1228/comments/commentRss/154095.htmlhttp://m.shnenglu.com/yuqilin1228/services/trackbacks/154095.html闃呰鍏ㄦ枃

LynnRaymond 2011-08-23 02:06 鍙戣〃璇勮
]]>
銆愯璁″疄璺點(diǎn)慣he Practice of Programming 01http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110628.htmlLynnRaymondLynnRaymondFri, 26 Mar 2010 15:39:00 GMThttp://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110628.htmlhttp://m.shnenglu.com/yuqilin1228/comments/110628.htmlhttp://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110628.html#Feedback0http://m.shnenglu.com/yuqilin1228/comments/commentRss/110628.htmlhttp://m.shnenglu.com/yuqilin1228/services/trackbacks/110628.htmlThe Practice of Programming - Chapter 1 Style

1.1  Names

       A name should be informative, concise, memorable, and pronounceable if possible.

   

* Use descriptive names for globals, short names for locals.

Global variables need names long enough and descriptive enough to remind the reader of their meaning.

It's also helpful to include a brief comment with the declaration of each global.

The longer the program, the more important is the choice of good, descriptive, systematic names.

* Be consistent.

Give related things related names that show their relationship and high-light their difference.

* Use active names for functions.

* Be accurate.

   

1.2 Expressions and Statements

   

* Indent to show structure.

A consistent indentation style is the lowest-energy way to make a program's structure self-evident.

* Use the natural form of expressions.

Write expressions as you might speak them aloud.

* Parenthesize to resolve ambiguity.

* Break up complex expressions.

* Be clear.

the goal is to write clear code, not clever code.

* Be careful with side effects.

   

1.3 Consistency and Idioms

* Use a consistent indentation and brace style.

* Use idioms for consistency.

A central part of learning any language is developing a familiarity with its idioms.

* Use else-ifs for multi-way decisions.

   

1.4 Function Macros

* Avoid function macros.

* Parenthesize the macro body and arguments.

In C++, inline functions avoid the syntactic trouble while offering whatever performance advantage macros might provide.

They are appropriate for short functions that set or retrieve a single value.

   

1.5 Magic Numbers

Magic numbers are the constants, array sizes, character positions, conversion factors, and other literal numric values that appear in programs.

   

* Given names to magic numbers.

* Define numbers as constants, not macros.

The C preprocessor is a powerful but blunt tool, however, and macros are a dangerous way to program because they change the lexical structure of the program underfoot. Let the language proper do the work.

* Use character constants, not integers.

* Use the language to calculate the size of an object.

   

1.6 Comments

* Don't belabor the obvious.

* Comment functions and global data.

* Don't comment bad code, rewrite it.

* Don't contradict the code.

* Clarify,don't confuse.

   

1.7 Why bother?

The main concerns of programming style: descriptive names, clearity in expressions, straightforward control flow, readability of code and comments, and the importance of consistence use of conventions and idioms in achieving all of these.

Well-written code is easier to read and to understand, almost surely has fewer errors, and is likely to be smaller than code that has been carelessly tossed together and never polished.

The key observation is that good style should be a matter of habit.

Once they become automatic, your subconscious will take care of many of the details for you, and even the code you produce under pressure will be better.

   

   

紼嬪簭璁捐瀹炶返 - 絎?绔?/span>

1. 椋庢牸

1.1 鍚嶅瓧

涓涓悕瀛楀簲璇ユ槸闈炲艦寮忕殑銆佺畝緇冪殑銆佸鏄撹蹇嗙殑錛屽鏋滃彲鑳界殑璇濓紝鏈濂芥槸鑳藉鎷艱鐨勩?/span>

* 鍏ㄥ眬鍙橀噺浣跨敤鍏鋒湁璇存槑鎬х殑鍚嶅瓧錛屽眬閮ㄥ彉閲忕敤鐭悕瀛椼?/span>

鍏ㄥ眬鍙橀噺鐨勫悕瀛楀簲璇ヨ凍澶熼暱錛屽叿鏈夎凍澶熺殑璇存槑鎬с傜粰姣忎釜鍏ㄥ眬鍙橀噺澹版槑闄勪竴涓畝鐭敞閲婁篃闈炲父鏈夊府鍔┿?/span>

瀵逛簬闀跨殑紼嬪簭錛岄夋嫨閭d簺濂界殑銆佸叿鏈夎鏄庢х殑銆佺郴緇熷寲鐨勫悕瀛楀氨鏇村姞閲嶈銆?/span>

* 淇濇寔涓鑷存с?/span>

* 鍑芥暟閲囩敤鍔ㄤ綔鎬у悕瀛椼?/span>

* 瑕佸噯紜傚悕瀛椾笌鍏跺疄鐜頒繚鎸佸噯紜殑瀵瑰簲銆?/span>

   

1.2 琛ㄨ揪寮忓拰璇彞

* 鐢ㄧ緝琛屾樉紺虹▼搴忕殑緇撴瀯銆?/span>

閲囩敤涓縐嶄竴鑷寸殑緙╄椋庢牸錛屾槸浣跨▼搴忓憟鐜板嚭緇撴瀯娓呮櫚鐨勬渶鐪佸姏鐨勬柟娉曘?/span>

* 浣跨敤琛ㄨ揪寮忕殑鑷劧褰㈠紡銆?/span>

琛ㄨ揪寮忓簲璇ュ啓寰椾綘鑳藉ぇ澹板康鍑烘潵銆?/span>

* 鐢ㄥ姞鎷彿鐨勬柟寮忔帓闄や簩涔夋с?/span>

* 鍒嗚В澶嶆潅鐨勮〃杈懼紡銆?/span>

* 瑕佹竻鏅般?/span>

鐩爣搴旇鏄啓鍑烘渶娓呮櫚鐨勪唬鐮侊紝鑰屼笉鏄渶宸у鐨勪唬鐮併?/span>

* 灝忓績鍓綔鐢ㄣ?/span>

鍍?/span>++榪欎竴綾昏繍綆楃鍏鋒湁鍓綔鐢紝瀹冧滑闄や簡榪斿洖涓涓煎錛岃繕灝嗛殣鍚湴鏀瑰彉鍙橀噺鐨勫箋?/span>

   

1.3 涓鑷存у拰涔?fàn)鎯敤娉?/span>

* 浣跨敤涓鑷寸殑緙╂帓鍜屽姞鎷彿椋庢牸銆?/span>

濡傛灉浣犲伐浣滃湪涓涓笉鏄嚜宸卞啓鐨勭▼搴忎笂錛岃娉ㄦ剰淇濈暀紼嬪簭鍘熸湁鐨勯鏍箋?/span>

* 涓轟簡涓鑷存э紝浣跨敤涔?fàn)鎯敤娉曘?/span>

鍦ㄥ涔?fàn)涓涓璦鐨勮繃紼嬩腑錛屼竴涓腑蹇冮棶棰樺氨鏄愭笎鐔熸?zhèn)夊畠鐨勪範(fàn)鎯敤娉曘?/span>

   

-----------------------------------------------

甯歌涔?fàn)鎯敤娉曚箣涓鏄驚鐜殑褰㈠紡銆?/span>

渚嬪錛?/span>

for(i = 0; i < n; i++)

array[i] = 1.0;

C++鎴?/span>Java閲屽父瑙佺殑鍙︿竴縐嶅艦寮忔槸鎶婂驚鐜彉閲忕殑澹版槑涔熷寘鎷湪鍐咃細(xì)

for(int i = 0; i < n; i++)

array[i] = 1.0;

-----------------------------------------------

涓嬮潰鏄?/span>C璇█鎵弿涓涓摼琛ㄧ殑鏍囧噯寰幆錛?/span>

for(p = list; p != NULL; p = p->next)

...

-----------------------------------------------

鏃犵┓寰幆錛?/span>

for( ;; )

...

鎴?/span>

while(1)

...

-----------------------------------------------

甯歌鐨勫彟涓涓儻鐢ㄦ硶鏄妸涓涓祴鍊兼斁榪涘驚鐜潯浠墮噷錛?/span>

while( (c = getchar()) != EOF)

putchar(c);

-----------------------------------------------

涓涓笉濂界殑渚嬪瓙錛?/span>

char *p, buf[256];

gets(buf);

p = malloc(strlen(buf));

strcpy(p, buf);

闂1.

緇濅笉瑕佷嬌鐢ㄥ嚱鏁?/span>gets錛屽洜涓轟綘娌″姙娉曢檺鍒跺畠鐢辮緭鍏ラ偅鍎胯鍏ュ唴瀹圭殑鏁伴噺銆傝繖甯稿父浼?xì)瀵艰嚧涓涓畨鍏ㄦч棶棰樸?/span>

闂2.

榪樻湁鍙︿竴涓棶棰橈細(xì)strlen姹傚嚭鐨勫兼病鏈夎鍏ヤ覆緇撳熬鐨?/span>'\0'瀛楃錛岃?/span>strcpy鍗村皢澶嶅埗瀹冦?/span>

涔?fàn)鎯啓娉曟槸锛?xì)

p = malloc(strlen(buf)+1);

strcpy(p, buf);

鎴栧湪C++閲岋細(xì)

p = new char[strlen(buf)+1];

strcpy(p , buf);

濡傛灉榪欓噷娌℃湁+1錛屽氨瑕佸綋蹇冦?/span>

strdup鍙互浣塊伩鍏嶄笂榪伴敊璇彉寰楁洿綆鍗曘傚彲鎯?/span>strdup涓嶆槸ANSI C鏍囧噯涓殑鍐呭銆?/span>

闂3.

涓婇潰涓や釜鐗堟湰閮芥病鏈夋鏌?/span>malloc鐨勮繑鍥炲箋?/span>

鍦ㄥ疄闄呯▼搴忎腑錛屽浜?/span>malloc銆?/span>realloc銆?/span>strdup鍙?qiáng)鋼Q浣曠壍娑夊埌瀛樺偍鍒嗛厤鐨勫嚱鏁幫紝瀹冧滑鐨勮繑鍥炲奸兘蹇呴』鍋氭鏌ャ?/span>

-----------------------------------------------

   

* 鐢?/span>else-if琛ㄨ揪澶氳礬閫夋嫨銆?/span>

澶氳礬閫夋嫨鐨勪範(fàn)鎯〃紺烘硶褰㈠紡濡備笅錛?/span>

if (condition1)

statement1

else if (condition2)

statement2

...

else if (conditionn)

statementn

else

default-statement

   

1.4 鍑芥暟瀹?/span>

* 閬垮厤浣跨敤鍑芥暟瀹忋?/span>

鍑芥暟瀹忔渶甯歌鐨勪竴涓弗閲嶉棶棰樻槸錛氬鏋滀竴涓弬鏁板湪瀹氫箟涓嚭鐜板嬈★紝瀹冨氨鍙兘琚嬈℃眰鍊箋?/span>

濡傛灉璋冪敤鏃剁殑瀹為檯鍙傛暟甯︽湁鍓綔鐢紝緇撴灉灝卞彲鑳戒駭鐢熶竴涓毦浠ユ崏鎽哥殑閿欒銆?/span>

渚嬪瓙錛?/span>

鏌?/span><ctype.h>涓細(xì)

#define isupper(c) ((c) >= 'A' && (c) <= 'Z')

濡傛灉榪欐牱璋冪敤

while (isupper(c = getchar())),

涓ゆ杈撳叆鐨勫瓧絎?/span>c琚垎鍒笌'A'鍜?/span>'Z'姣旇緝浜嗐?/span>

   

C璇█鏍囧噯鍏佽灝?/span>isupper鍙?qiáng)绫讳技鍑芥暟瀹氫箟湄?fù)瀹忥紝浣嗚姹備繚璇佸畠浠殑鍙傛暟鍙眰鍊間竴嬈°?/span>

濡傛灉甯屾湜鏇村畨鍏ㄤ簺錛岄偅涔堝氨涓瀹氫笉瑕佸祵濂楀湴浣跨敤鍍?/span>getchar榪欑甯︽湁鍓綔鐢ㄧ殑鍑芥暟銆?/span>

鏀瑰啓濡備笅錛?/span>

while ((c = getchar()) != EOF && isupper(c))

鏈夋椂澶氭姹傚煎甫鏉ョ殑鏄墽琛屾晥鐜囬棶棰橈紝鑰屼笉鏄湡姝g殑閿欒銆?/span>

   

* 緇欏畯鐨勪綋鍜屽弬鏁伴兘鍔犱笂鎷彿銆?/span>

濡傛灉涓涓搷浣滄瘮杈冨鏉傦紝鎴栬呭畠寰堝叿涓鑸э紝鍊煎緱鍖呰璧鋒潵錛岄偅涔堣繕鏄簲璇ヤ嬌鐢ㄥ嚱鏁般?/span>

C++鎻愪緵鐨?/span>inline鍑芥暟鏃㈤伩鍏嶄簡璇硶鏂歸潰鐨勯夯鐑?chǔ)锛岃屼笖鍙堝彲寰楀埌瀹忚兘澶熸彁渚涚殑鎵ц鏁堢巼錛屽緢閫傚悎鏉ュ畾涔夐偅浜涜緗垨鑰呮彁鍙栦竴涓肩殑鐭俊鍑芥暟銆?/span>

   

1.5 紲炵鐨勬暟 錛堢炕璇戠殑鏈夌偣...錛?/span>

紲炵鐨勬暟鍖呮嫭鍚勭甯告暟銆佹暟緇勭殑澶у皬銆佸瓧絎︿綅緗佸彉鎹㈠洜瀛愪互鍙?qiáng)绋嬪簭涓嚭鐜扮殑鍏朵粬浠ユ枃瀛楀舰寮忓啓鍑虹殑鏁板箋?/span>

   

* 緇欑縐樼殑鏁拌搗涓悕瀛椼?/span>

* 鎶婃暟瀹氫箟涓哄父鏁幫紝涓嶈瀹氫箟涓哄畯銆?/span>

C璇█棰勫鐞嗙▼搴忔槸涓涓己鏈夊姏鐨勫伐鍏鳳紝浣嗘槸瀹冨張鏈変簺椴佽幗銆?/span>

浣跨敤瀹忚繘琛岀紪紼嬫槸涓縐嶅緢鍗遍櫓鐨勬柟寮忥紝鍥犱負(fù)瀹忎細(xì)鍦ㄨ儗鍦伴噷鏀瑰彉紼嬪簭鐨勮瘝娉曠粨鏋勩傛垜浠簲璇ヨ璇硶鍘誨仛姝g‘鐨勫伐浣溿?/span>

錛堣瘧鑰呮敞錛氶澶勭悊鍛戒護(hù)涓嶆槸C璇█鏈韓鐨勭粍鎴愰儴鍒嗭紝鑰屾槸涓緇勮緟鍔╂垚鍒嗐傝繖閲岃"璁╄璦..."錛屼篃灝辨槸璇翠笉瑕佺敤棰勫鐞嗗懡浠ゅ仛銆傦級

* 浣跨敤瀛楃褰㈠紡鐨勫父閲忥紝涓嶈鐢ㄦ暣鏁般?/span>

渚嬪瓙錛?/span>

if (c >= 65 && c <= 90)

...

榪欑鍐欐硶瀹屽叏渚濊禆浜庣壒孌婄殑瀛楃琛ㄧず鏂瑰紡銆?/span>

榪欐牱鍐欐洿濂戒簺錛?/span>

if (c >= 'A' && c <= 'Z')

...

浣嗘槸錛屽鏋滃湪鏌愪釜緙栫爜瀛楃闆嗛噷鐨勫瓧姣嶇紪鐮佷笉鏄繛緇殑錛屾垨澶規(guī)湁鍏朵粬瀛楁瘝錛岄偅涔堣繖縐嶆弿榪板氨鏄敊鐨勩?/span>

鏈濂芥槸鐩存帴浣跨敤搴撳嚱鏁般?/span>

if(isupper(c))

...

-----------------------------------------------

紼嬪簭閲岃澶氫笂涓嬫枃涓粡甯稿嚭鐜扮殑0銆傚鏋滄垜浠妸姣忎釜0鐨勭被鍨嬪啓寰楁洿鏄庣‘鏇存竻妤氾紝瀵硅紼嬪簭鐨勪漢鐞嗚В鍏朵綔鐢ㄦ槸寰堟湁甯姪鐨勩?/span>

渚嬪錛岀敤 (void*)0 鎴?/span> NULL 琛ㄧずC閲岀殑絀烘寚閽堝鹼紝鐢?/span>'\0'鑰屼笉鏄?/span>0琛ㄧず瀛楃涓茬粨灝劇殑絀哄瓧鑺傘?/span>

鐒惰屽湪C++閲屼漢浠兘宸茬粡鎺ュ彈浜嗙敤0錛堣屼笉鏄?/span>NULL錛夎〃紺虹┖鎸囬拡銆?/span>Java閲屽垯瀹氫箟浜嗗叧閿瓧null銆?/span>

   

* 鍒╃敤璇█鍘昏綆楀璞$殑澶у皬銆?/span>

涓嶈瀵逛換浣曟暟鎹被鍨嬩嬌鐢ㄦ樉寮忓啓鍑烘潵鐨勫ぇ灝忋?/span>

渚嬶細(xì)

 char buf[1024];

 fgets(buf, sizeof(buf), stdin);

瀵逛簬閭d簺鍙互鐪嬫竻妤氱殑鏁扮粍錛堜笉鏄寚閽堬級錛屼笅闈㈢殑瀹忓畾涔夎兘璁$畻鍑烘暟緇勭殑鍏冪礌涓暟錛?/span>

#define NELEMS(array) (sizeof(array) / sizeof(array[0]))

   

1.6 娉ㄩ噴

* 涓嶈澶ц皥鏄庢樉鐨勪笢瑗褲?/span>

娉ㄩ噴搴旇鎻愪緵閭d簺涓嶈兘涓涓嬪瓙浠庝唬鐮佷腑鐪嬪埌鐨勪笢瑗匡紝鎴栬呮妸閭d簺鏁e竷鍦ㄨ澶氫唬鐮侀噷鐨勪俊鎭敹闆嗗埌涓璧楓?/span>

* 緇欏嚱鏁板拰鍏ㄥ眬鏁版嵁鍔犳敞閲娿?/span>

* 涓嶈娉ㄩ噴宸殑浠g爜錛岄噸鍐欏畠銆?/span>

* 涓嶈涓庝唬鐮佺煕鐩俱?/span>

褰撲綘鏀瑰彉浠g爜鏃訛紝涓瀹氳娉ㄦ剰淇濊瘉鍏朵腑鐨勬敞閲婃槸鍑嗙‘鐨勩?/span>

* 婢勬竻鎯呭喌錛屼笉瑕佹坊涔便?/span>

娉ㄩ噴搴旇鍦ㄥ洶闅劇殑鍦版柟灝介噺甯姪璇昏咃紝鑰屼笉鏄粰浠栦滑璁劇疆闅滅銆?/span>

   

娉ㄩ噴寰堥噸瑕侊紝浣嗘槸涔熶笉蹇呯洸鐩敞閲娿?/span>

娉ㄩ噴鏄竴縐嶅伐鍏鳳紝瀹冪殑浣滅敤灝辨槸甯姪璇昏呯悊瑙g▼搴忎腑鐨勬煇浜涢儴鍒嗭紝鑰岃繖浜涢儴鍒嗙殑鎰忎箟涓嶅鏄撻氳繃浠g爜鏈韓鐩存帴鐪嬪埌銆?/span>

   

1.7 涓轟綍瀵規(guī)璐瑰績

娉ㄩ噸紼嬪簭璁捐鐨勯鏍鹼細(xì)鍏鋒湁璇存槑鎬х殑鍚嶅瓧銆佹竻鏅扮殑琛ㄨ揪寮忋佺洿鎴簡褰撶殑鎺у埗嫻併佸彲璇葷殑浠g爜鍜屾敞閲婏紝浠ュ強(qiáng)鍦ㄨ拷姹傝繖浜涘唴瀹規(guī)椂涓鑷村湴浣跨敤鏌愪簺瑙勫垯鍜屾儻鐢ㄦ硶鐨勯噸瑕佹с?/span>

   

涔﹀啓鑹ソ鐨勪唬鐮佹洿瀹規(guī)槗闃呰鍜岀悊瑙o紝鍑犱箮鍙互淇濊瘉鍏朵腑鐨勯敊璇洿灝戙?/span>

濂介鏍煎簲璇ユ垚涓轟竴縐嶄範(fàn)鎯?/span>

涓鏃﹁繖縐嶄範(fàn)鎯彉鎴愯嚜鍔ㄧ殑涓滆タ錛屼綘鐨勬綔鎰忚瘑灝變細(xì)甯姪浣犵収鏂欒澶氱粏鑺傞棶棰橈紝鐢氳嚦浣犲湪宸ヤ綔鍘嬪姏涓嬪啓鍑虹殑浠g爜涔熶細(xì)鏇村ソ銆?/span>



LynnRaymond 2010-03-26 23:39 鍙戣〃璇勮
]]>
銆怌++甯歌瘑銆慍++鐨刬ostream鏍囧噯搴撲粙緇?/title><link>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110620.html</link><dc:creator>LynnRaymond</dc:creator><author>LynnRaymond</author><pubDate>Fri, 26 Mar 2010 14:03:00 GMT</pubDate><guid>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110620.html</guid><wfw:comment>http://m.shnenglu.com/yuqilin1228/comments/110620.html</wfw:comment><comments>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110620.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/yuqilin1228/comments/commentRss/110620.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/yuqilin1228/services/trackbacks/110620.html</trackback:ping><description><![CDATA[<strong> 涓轟粈涔堥渶瑕乮ostream 鎴戜滑浠庝竴寮濮嬪氨涓鐩村湪鍒╃敤C++鐨勮緭鍏ヨ緭鍑哄湪鍋氱潃鍚勭緇冧範(fàn)錛岃緭鍏ヨ緭鍑烘槸鐢眎ostream搴撴彁渚涚殑錛屾墍浠ヨ璁烘鏍囧噯搴撴槸鏈夊繀瑕佺殑錛屽畠涓嶤璇█鐨? stdio搴撲笉鍚岋紝瀹冧粠涓寮濮嬪氨鏄敤澶氶噸緇ф壙涓庤櫄鎷熺戶鎵垮疄鐜扮殑闈㈠悜瀵硅薄鐨勫眰嬈$粨鏋勶紝浣滀負(fù)涓涓猚++鐨勬爣鍑嗗簱緇勪歡鎻愪緵緇欑▼搴忓憳浣跨敤銆?</strong> <p><strong> 銆銆iostream涓哄唴緗被鍨嬬被鍨嬪璞℃彁渚涗簡杈撳叆杈撳嚭鏀寔錛屽悓鏃朵篃鏀寔鏂囦歡鐨勮緭鍏ヨ緭鍑猴紝綾葷殑璁捐鑰呭彲浠ラ氳繃瀵筰ostream搴? 鐨勬墿灞曪紝鏉ユ敮鎸佽嚜瀹氫箟綾誨瀷鐨勮緭鍏ヨ緭鍑烘搷浣溿?</strong> </p> <p><strong> 銆銆涓轟粈涔堣瑕佹墿灞曟墠鑳芥彁渚涙敮鎸佸憿錛熸垜浠潵涓涓ず渚嬨?%CODE{"cpp"}% #include <stdio.h> #include <iostream></iostream>using namespace std; </strong> </p> <p><strong> class Test { public: Test(int a=0,int b=0) { Test::a=a; Test::b=b; } int a; int b; }; int main() { Test t(100,50); printf("%???",t);//涓嶆槑紜殑杈撳嚭鏍煎紡 scanf("%???",t);//涓嶆槑紜殑杈撳叆鏍煎紡 cout<<t<<endl;//鍚屾牱涓嶅鏄庣‘ cin>>t;//鍚屾牱涓嶅鏄庣‘ system("pause"); } %ENDCODE% 鐢變簬鑷畾涔夌被鐨勭壒孌婃э紝鍦ㄤ笂闈㈢殑浠g爜涓紝鏃犺浣犱嬌鐢╟椋庢牸鐨勮緭鍏ヨ緭鍑猴紝鎴栬呮槸c++鐨勮緭鍏ヨ緭鍑洪兘涓嶆槸涓嶆槑紜殑涓涓〃紺猴紝鐢變簬c璇█娌℃湁榪愮畻絎﹂噸杞芥満 鍒訛紝瀵艱嚧stdio搴撶殑涓嶅彲鎵╁厖鎬э紝璁╂垜浠棤娉曡printf()鍜宻canf()鏀寔瀵硅嚜瀹氫箟綾誨璞$殑鎵╁厖璇嗗埆錛岃宑++鏄彲浠ラ氳繃榪愮畻絎﹂噸杞芥満鍒舵墿鍏? iostream搴撶殑錛屼嬌緋葷粺鑳借兘澶熻瘑鍒嚜瀹氫箟綾誨瀷錛屼粠鑰岃杈撳叆杈撳嚭鏄庣‘鐨勭煡閬撲粬浠騫蹭粈涔堬紝鏍煎紡鏄粈涔堛?</strong> </p> <p><strong> 銆銆鍦ㄤ笂渚嬩腑鎴戜滑涔嬫墍浠ョ敤printf涓巆out榪涜瀵規(guī)瘮鐩殑鏄負(fù)浜嗗憡璇夊ぇ瀹訛紝C涓嶤++澶勭悊杈撳叆杈撳嚭鐨勬牴鏈笉鍚岋紝鎴戜滑浠巆榪滅殑杈? 鍏ヨ緭鍑哄彲浠ュ緢鏄庢樉鐪嬪嚭鏄嚱鏁拌皟鐢ㄦ柟寮忥紝鑰宑++鐨勫垯鏄璞℃ā寮忥紝cout鍜宑in鏄痮stream綾誨拰istream綾葷殑瀵硅薄銆?</strong> </p> <h3><a name="2 fstream: ifstream 鍜?ofstream"></a>1 iostream: istream 鍜?ostream </h3> <strong> 銆銆C++涓殑iostream搴撲富瑕佸寘鍚笅鍥炬墍紺虹殑鍑犱釜澶存枃浠? </strong> <table class="twikiTable" border="0" cellpadding="1" cellspacing="1"> <tbody> <tr class="twikiTableEven"> <th class="twikiFirstCol" colspan="2" maxcols="0" bgcolor="#dadada">IOSstream 搴?</th> </tr> <tr class="twikiTableOdd"> <td class="twikiFirstCol" bgcolor="#eaeaea"><strong> fstream </strong> </td> <td bgcolor="#eaeaea"><strong> iomainip </strong> </td> </tr> <tr class="twikiTableEven"> <td class="twikiFirstCol" bgcolor="#ffffff"><strong> ios </strong> </td> <td bgcolor="#ffffff"><strong> iosfwd </strong> </td> </tr> <tr class="twikiTableOdd"> <td class="twikiFirstCol" bgcolor="#eaeaea"><strong> iostream </strong> </td> <td bgcolor="#eaeaea"><strong> istream </strong> </td> </tr> <tr class="twikiTableEven"> <td class="twikiFirstCol" bgcolor="#ffffff"><strong> ostream </strong> </td> <td bgcolor="#ffffff"><strong> sstream </strong> </td> </tr> <tr class="twikiTableOdd"> <td class="twikiFirstCol twikilast" bgcolor="#eaeaea"><strong> streambuf </strong> </td> <td class="twikiLast" bgcolor="#eaeaea"><strong> strstream </strong> </td> </tr> </tbody> </table> <p><strong> 銆銆鎴戜滑鎵鐔熸?zhèn)夌殑杈撳叆杈撳嚭鎿嶄綔鍒嗗埆鏄敱istream(杈撳叆嫻?鍜宱stream(杈撳嚭嫻?榪欎袱涓被鎻愪緵鐨勶紝涓轟簡鍏佽鍙屽悜鐨勮緭鍏ワ紡 杈撳嚭錛岀敱istream鍜宱stream媧劇敓鍑轟簡iostream綾匯?</strong> </p> <p><strong> 銆銆綾葷殑緇ф壙鍏崇郴瑙佷笅鍥撅細(xì)<br><img alt="" src="http://www.pconline.com.cn/pcedu/empolder/gj/c/0504/pic/05cppios02.gif"> </strong> </p> <p><strong> iostream搴撳畾涔変簡浠ヤ笅涓変釜鏍囧噯嫻佸璞★細(xì) </strong> </p> <ol> <li><strong> cin錛岃〃紺烘爣鍑嗚緭鍏?standard input)鐨刬stream綾誨璞°俢in浣挎垜浠彲浠ヤ粠璁懼璇誨鏁版嵁銆?</strong> </li> <li><strong> cout錛岃〃紺烘爣鍑嗚緭鍑?standard output)鐨刼stream綾誨璞°俢out浣挎垜浠彲浠ュ悜璁懼杈撳嚭鎴栬呭啓鏁版嵁銆?</strong> </li> <li><strong> cerr錛岃〃紺烘爣鍑嗛敊璇?standard error)鐨刼sttream綾誨璞°俢err鏄鍑虹▼搴忛敊璇秷鎭殑鍦版柟錛屽畠鍙兘鍏佽鍚戝睆騫曡澶囧啓鏁版嵁銆?</strong> </li> </ol> <p><strong> 銆銆杈撳嚭涓昏鐢遍噸杞界殑宸︾Щ鎿嶄綔絎︼紙<<錛夋潵瀹屾垚錛岃緭鍏ヤ富瑕佺敱閲嶈澆鐨勫彸縐繪搷浣滅(>>)瀹屾垚: </strong> </p> <ol> <li><strong> >>a琛ㄧず灝嗘暟鎹斁鍏瀵硅薄涓?</strong> </li> <li><strong> <<a琛ㄧず灝哸瀵硅薄涓瓨鍌ㄧ殑鏁版嵁鎷垮嚭銆?</strong> </li> </ol> <p><strong> 銆銆榪欎簺鏍囧噯鐨勬祦瀵硅薄閮芥湁榛樿鐨勬墍瀵瑰簲鐨勮澶囷紝瑙佷笅琛細(xì)<br></strong> <table class="twikiTable" border="0" cellpadding="1" cellspacing="1"> <tbody> <tr class="twikiTableEven"> <th class="twikiFirstCol" maxcols="0" bgcolor="#dadada"><a title="Sort by this column" style="color: #000000;" rel="nofollow"><u>C++瀵硅薄鍚?/u></a> </th> <th maxcols="0" bgcolor="#dadada"><a title="Sort by this column" style="color: #000000;" rel="nofollow"><u>璁懼鍚嶇О</u></a> </th> <th maxcols="0" bgcolor="#dadada"><a title="Sort by this column" style="color: #000000;" rel="nofollow"><u>C涓爣鍑嗚澶囧悕</u></a> </th> <th maxcols="0" bgcolor="#dadada"><a title="Sort by this column" style="color: #000000;" rel="nofollow"><u>榛樿鍚箟</u></a> </th> </tr> <tr class="twikiTableOdd"> <td class="twikiFirstCol" align="middle" bgcolor="#eaeaea"><strong> cin </strong> </td> <td align="middle" bgcolor="#eaeaea"><strong> 閿洏 </strong> </td> <td align="middle" bgcolor="#eaeaea"><strong> stdin </strong> </td> <td align="middle" bgcolor="#eaeaea"><strong> 鏍囧噯杈撳叆 </strong> </td> </tr> <tr class="twikiTableEven"> <td class="twikiFirstCol" align="middle" bgcolor="#ffffff"><strong> cout </strong> </td> <td align="middle" bgcolor="#ffffff"><strong> 鏄劇ず鍣ㄥ睆騫?</strong> </td> <td align="middle" bgcolor="#ffffff"><strong> stdout </strong> </td> <td align="middle" bgcolor="#ffffff"><strong> 鏍囧噯杈撳嚭 </strong> </td> </tr> <tr class="twikiTableOdd"> <td class="twikiFirstCol twikilast" align="middle" bgcolor="#eaeaea"><strong> cerr </strong> </td> <td class="twikiLast" align="middle" bgcolor="#eaeaea"><strong> 鏄劇ず鍣ㄥ睆騫?</strong> </td> <td class="twikiLast" align="middle" bgcolor="#eaeaea"><strong> stderr </strong> </td> <td class="twikiLast" align="middle" bgcolor="#eaeaea"><strong> 鏍囧噯閿欒杈撳嚭 </strong> </td> </tr> </tbody> </table> <strong> 銆銆涓婅〃涓殑鎰忔濊〃鏄巆in瀵硅薄鐨勯粯璁よ緭鍏ヨ澶囨槸閿洏錛宑out瀵硅薄鐨勯粯璁よ緭鍑鴻澶囨槸鏄劇ず鍣ㄥ睆騫曘?</strong> </p> <p><strong> 銆銆閭d箞鍘熺悊涓婏跡++鏈夋槸濡備綍鍒╃敤cin錛廲out瀵硅薄涓庡乏縐誨拰鍙崇Щ榪愮畻絎﹂噸杞芥潵瀹炵幇杈撳叆杈撳嚭鐨勫憿錛?</strong> </p> <p><strong> 銆銆涓嬮潰鎴戜滑浠ヨ緭鍑轟負(fù)渚嬶紝璇存槑鍏跺疄鐜板師鐞嗭細(xì) </strong> </p> <ol> <li><strong> cout鏄痮stream綾葷殑瀵硅薄錛屽洜涓哄畠鎵鎸囧悜鐨勬槸鏍囧噯璁懼錛堟樉紺哄櫒灞忓箷錛夛紝鎵浠ュ畠鍦╥ostream澶存枃浠朵腑浣滀負(fù)鍏? 灞瀵硅薄榪涜瀹氫箟銆?</strong> </li> <li><strong> ostream cout(stdout);//鍏墮粯璁ゆ寚鍚戠殑C涓殑鏍囧噯璁懼鍚嶏紝浣滀負(fù)鍏舵瀯閫犲嚱鏁扮殑鍙傛暟浣跨敤銆? </strong> </li> <li><strong> 鍦╥ostream.h澶存枃浠朵腑錛宱stream綾誨搴旀瘡涓熀鏈暟鎹被鍨嬮兘鏈夊叾鍙嬪厓鍑芥暟瀵瑰乏縐繪搷浣滅榪涜浜嗗弸 鍏冨嚱鏁扮殑閲嶈澆銆?</strong> <ul> <li><strong> ostream& operator<<(ostream &temp,int source); </strong> </li> <li><strong> ostream& operator<<(ostream &temp,char *ps); </strong> </li> <li><strong> ... 絳夌瓑 </strong> </li> </ul> </li> </ol> <p><strong> 銆銆涓鍙ヨ緭鍑鴻鍙ワ細(xì)cout<<"www.cndev-lab.com"錛涳紝浜嬪疄涓婅皟鐢ㄧ殑灝辨槸 ostream& operator<<(ostream &temp,char *ps);榪欎釜榪愮畻絎﹂噸杞藉嚱鏁幫紝鐢變簬榪斿洖鐨勬槸嫻佸璞$殑寮曠敤錛屽紩鐢ㄥ彲浠ヤ綔涓哄乏鍊間嬌鐢紝鎵浠ュ綋紼嬪簭涓湁綾諱技cout<<"www.cndev- lab.com"<<"涓浗杞歡寮鍙戝疄楠屽";榪欐牱鐨勮鍙ュ嚭鐜扮殑鏃跺欙紝灝辮兘澶熸瀯鎴愯繛緇緭鍑恒?</strong> </p> <p><strong> 銆銆鐢變簬iostream搴撲笉鍏夋敮鎸佸璞$殑杈撳叆杈撳嚭錛屽悓鏃朵篃鏀寔鏂囦歡嫻佺殑杈撳叆杈撳嚭錛屾墍浠ュ湪璇︾粏璁茶В宸︾Щ涓庡彸縐昏繍綆楃閲嶈澆鍙墠錛屾垜浠? 鏈夊繀瑕佸厛瀵規(guī)枃浠剁殑杈撳叆杈撳嚭浠ュ強(qiáng)杈撳叆杈撳嚭鐨勬帶鍒剁鏈夋墍浜嗚В銆?</strong> </p> <h3><a name="2 fstream: ifstream 鍜?ofstream"></a>2 fstream: ifstream 鍜? ofstream </h3> <strong> 銆銆鍜屾枃浠舵湁鍏崇郴鐨勮緭鍏ヨ緭鍑虹被涓昏鍦╢stream.h榪欎釜澶存枃浠朵腑琚畾涔夛紝鍦ㄨ繖涓ご鏂囦歡涓富瑕佽瀹氫箟浜嗕笁涓被錛岀敱榪欎笁涓被鎺у埗瀵規(guī)枃浠剁殑 鍚勭杈撳叆杈撳嚭鎿嶄綔錛屼粬浠垎鍒槸ifstream銆乷fstream銆乫stream錛屽叾涓璮stream綾繪槸鐢眎ostream綾繪淳鐢熻屾潵錛屼粬浠箣闂寸殑緇? 鎵垮叧緋昏涓嬪浘鎵紺恒?br><img alt="" src="http://www.pconline.com.cn/pcedu/empolder/gj/c/0504/pic/05cppios04.gif"> </strong> <p><strong> 鐢變簬鏂囦歡璁懼騫朵笉鍍忔樉紺哄櫒灞忓箷涓庨敭鐩橀偅鏍鋒槸鏍囧噯榛樿璁懼錛屾墍浠ュ畠鍦╢stream.h澶存枃浠朵腑鏄病鏈夊儚cout閭f牱棰勫厛瀹氫箟鐨勫叏灞 瀵硅薄錛屾墍浠ユ垜浠繀欏昏嚜宸卞畾涔変竴涓綾葷殑瀵硅薄錛屾垜浠浠ユ枃浠朵綔涓鴻澶囧悜鏂囦歡杈撳嚭淇℃伅(涔熷氨鏄悜鏂囦歡鍐欐暟鎹?錛岄偅涔堝氨搴旇浣跨敤ofstream綾匯?</strong> </p> <p><strong> 銆銆ofstream綾葷殑榛樿鏋勯犲嚱鏁板師褰負(fù)錛?%CODE{"cpp"}% ofstream::ofstream(const char *filename,int mode = ios::out,int openprot = filebuf::openprot); %ENDCODE% </strong> </p> <ul> <li><strong> filename錛氥銆瑕佹墦寮鐨勬枃浠跺悕 </strong> </li> <li><strong> mode錛氥銆銆銆瑕佹墦寮鏂囦歡鐨勬柟寮?</strong> </li> <li><strong> prot錛氥銆銆銆鎵撳紑鏂囦歡鐨勫睘鎬?</strong> </li> </ul> <p><strong> 銆銆鍏朵腑mode鍜宱penprot榪欎袱涓弬鏁扮殑鍙夐」琛ㄨ涓嬭〃錛?</strong> <table class="twikiTable" border="0" cellpadding="1" cellspacing="1"> <tbody> <tr class="twikiTableEven"> <td class="twikiFirstCol" colspan="2" align="middle" bgcolor="#eaeaea"><strong> mode 灞炴ц〃 </strong> </td> </tr> <tr class="twikiTableOdd"> <td class="twikiFirstCol" bgcolor="#ffffff"><strong> ios::app </strong> </td> <td bgcolor="#ffffff"><strong> 浠ヨ拷鍔犵殑鏂瑰紡鎵撳紑鏂囦歡 </strong> </td> </tr> <tr class="twikiTableEven"> <td class="twikiFirstCol" bgcolor="#eaeaea"><strong> ios::ate </strong> </td> <td bgcolor="#eaeaea"><strong> 鏂囦歡鎵撳紑鍚庡畾浣嶅埌鏂囦歡灝撅紝ios:app灝卞寘鍚湁姝ゅ睘鎬?</strong> </td> </tr> <tr class="twikiTableOdd"> <td class="twikiFirstCol" bgcolor="#ffffff"><strong> ios::binary </strong> </td> <td bgcolor="#ffffff"><strong> 浠ヤ簩榪涘埗鏂瑰紡鎵撳紑鏂囦歡錛岀己鐪佺殑鏂瑰紡鏄枃鏈柟寮忋備袱縐嶆柟寮忕殑鍖哄埆瑙佸墠鏂?</strong> </td> </tr> <tr class="twikiTableEven"> <td class="twikiFirstCol" bgcolor="#eaeaea"><strong> ios::in </strong> </td> <td bgcolor="#eaeaea"><strong> 鏂囦歡浠ヨ緭鍏ユ柟寮忔墦寮 </strong> </td> </tr> <tr class="twikiTableOdd"> <td class="twikiFirstCol" bgcolor="#ffffff"><strong> ios::out </strong> </td> <td bgcolor="#ffffff"><strong> 鏂囦歡浠ヨ緭鍑烘柟寮忔墦寮 </strong> </td> </tr> <tr class="twikiTableEven"> <td class="twikiFirstCol twikilast" bgcolor="#eaeaea"><strong> ios::trunc </strong> </td> <td class="twikiLast" bgcolor="#eaeaea"><strong> 濡傛灉鏂囦歡瀛樺湪錛屾妸鏂囦歡闀垮害璁句負(fù)0 </strong> </td> </tr> </tbody> </table> <strong> 銆銆鍙互鐢?#8220;鎴?#8221;鎶婁互涓婂睘鎬ц繛鎺ヨ搗鏉ワ紝濡俰os::out|ios::binary銆?</strong> <table class="twikiTable" border="0" cellpadding="1" cellspacing="1"> <tbody> <tr class="twikiTableEven"> <td class="twikiFirstCol" colspan="2" align="middle" bgcolor="#eaeaea"><strong> openprot 灞炴ц〃 </strong> </td> </tr> <tr class="twikiTableOdd"> <td class="twikiFirstCol" bgcolor="#ffffff"><strong> 灞炴?</strong> </td> <td align="middle" bgcolor="#ffffff"><strong> 鍚箟 </strong> </td> </tr> <tr class="twikiTableEven"> <td class="twikiFirstCol" bgcolor="#eaeaea"><strong> 0 </strong> </td> <td bgcolor="#eaeaea"><strong> 鏅氭枃浠訛紝鎵撳紑璁塊棶 </strong> </td> </tr> <tr class="twikiTableOdd"> <td class="twikiFirstCol" bgcolor="#ffffff"><strong> 1 </strong> </td> <td bgcolor="#ffffff"><strong> 鍙鏂囦歡 </strong> </td> </tr> <tr class="twikiTableEven"> <td class="twikiFirstCol" bgcolor="#eaeaea"><strong> 2 </strong> </td> <td bgcolor="#eaeaea"><strong> 闅愬惈鏂囦歡 </strong> </td> </tr> <tr class="twikiTableOdd"> <td class="twikiFirstCol twikilast" bgcolor="#ffffff"><strong> 4 </strong> </td> <td class="twikiLast" bgcolor="#ffffff"><strong> 緋葷粺鏂囦歡 </strong> </td> </tr> </tbody> </table> <strong> 銆銆鍙互鐢?#8220;鎴?#8221;鎴栬?#8220;+”鎶婁互涓婂睘鎬ц繛鎺ヨ搗鏉?錛屽3鎴?|2灝辨槸浠ュ彧璇誨拰闅愬惈灞炴ф墦寮鏂囦歡銆?</strong> </p> <p><strong> 瀹炰緥浠g爜濡備笅錛?%CODE{"cpp"}% #include <fstream></fstream>using namespace std; </strong> </p> <p><strong> int main() { ofstream myfile("c:\\1.txt",ios::out|ios::trunc,0); myfile<<"涓浗杞歡寮鍙戝疄楠屽"<<endl<<"緗戝潃錛?<<"www.cndev- lab.com"; myfile.close() system("pause"); } %ENDCODE% 鏂囦歡浣跨敤瀹屽悗鍙互浣跨敤close鎴愬憳鍑芥暟鍏抽棴鏂囦歡銆?</strong> </p> <p><strong> 銆銆ios::app涓鴻拷鍔犳ā寮忥紝鍦ㄤ嬌鐢ㄨ拷鍔犳ā寮忕殑鏃跺欏悓鏃惰繘琛屾枃浠剁姸鎬佺殑鍒ゆ柇鏄竴涓瘮杈冨ソ鐨勪範(fàn)鎯?</strong> </p> <p><strong> 銆銆紺轟緥濡備笅錛?</strong> </p> <p><strong> %CODE{"cpp"}% #include <iostream></iostream>#include <fstream></fstream>using namespace std; int main() { ofstream myfile("c:\\1.txt",ios::app,0); if(myfile)//鎴栬呭啓鎴恗yfile.fail() { cout<<"鏂囦歡鎵撳紑澶辮觸錛岀洰鏍囨枃浠剁姸鎬佸彲鑳戒負(fù)鍙錛?; system("pause"); exit(1); } myfile<<"涓浗杞歡寮鍙戝疄楠屽"<<endl<<"緗戝潃錛?<<"www.cndev- lab.com"<<endl; myfile.close(); } %ENDCODE% </strong> </p> <p><strong> 銆銆鍦ㄥ畾涔塱fstream鍜宱fstream綾誨璞$殑鏃跺欙紝鎴戜滑涔熷彲浠ヤ笉鎸囧畾鏂囦歡銆備互鍚庡彲浠ラ氳繃鎴愬憳鍑芥暟open()鏄懼紡鐨勬妸涓 涓枃浠惰繛鎺ュ埌涓涓被瀵硅薄涓娿?</strong> </p> <p><strong> 銆銆渚嬪錛?</strong> </p> <p><strong> %CODE{"cpp"}% #include <iostream></iostream>#include <fstream></fstream>using namespace std; int main() { ofstream myfile; myfile.open("c:\\1.txt",ios::out|ios::app,0); if(myfile)//鎴栬呭啓鎴恗yfile.fail() { cout<<"鏂囦歡鍒涘緩澶辮觸,紓佺洏涓嶅彲鍐欐垨鑰呮枃浠朵負(fù)鍙!"; system("pause"); exit(1); } myfile<<"涓浗杞歡寮鍙戝疄楠屽"<<endl<<"緗戝潃錛?<<"www.cndev- lab.com"<<endl; myfile.close(); } %ENDCODE% 涓嬮潰鎴戜滑鏉ョ湅涓涓嬫槸濡備綍鍒╃敤ifstream綾誨璞★紝灝嗘枃浠朵腑鐨勬暟鎹鍙栧嚭鏉ワ紝鐒跺悗鍐嶈緭鍑哄埌鏍囧噯璁懼涓殑渚嬪瓙銆?</strong> </p> <p><strong> 銆銆浠g爜濡備笅錛?%CODE{"cpp"}% #include <iostream></iostream>#include <fstream></fstream>#include <string></string>using namespace std; int main() { ifstream myfile; myfile.open("c:\\1.txt",ios::in,0); if(myfile) { cout<<"鏂囦歡璇婚敊璇?; system("pause"); exit(1); } char ch; string content; while(myfile.get(ch)) { content+=ch; cout.put(ch);//cout<<ch;榪欎箞鍐欎篃鏄彲浠ョ殑 } myfile.close(); cout<<content; system("pause"); } %ENDCODE% 涓婁緥涓紝鎴戜滑鍒╃敤鎴愬憳鍑芥暟get()錛岄愪竴鐨勮鍙栨枃浠朵腑鐨勬湁鏁堝瓧絎︼紝鍐嶅埄鐢╬ut()鎴愬憳鍑芥暟錛屽皢鏂囦歡涓殑鏁版嵁閫氳繃寰幆閫愪竴杈撳嚭鍒版爣鍑嗚澶?灞忓箷) 涓婏紝 get()鎴愬憳鍑芥暟浼?xì)鍦ㄦ枃錃g璇誨埌榛樺熬鐨勬椂鍊欒繑鍥炲亣鍊鹼紝鎵浠ユ垜浠彲浠ュ埄鐢ㄥ畠鐨勮繖涓壒鎬т綔涓簑hile寰幆鐨勭粓姝㈡潯浠訛紝鎴戜滑鍚屾椂涔熷湪涓婁緥涓紩鍏ヤ簡C++椋庢牸鐨? 瀛楃涓茬被鍨媠tring錛屽湪寰幆璇誨彇鐨勬椂鍊欓愪竴淇濆瓨鍒癱ontent涓紝瑕佷嬌鐢╯tring綾誨瀷錛屽繀欏誨寘鍚玸tring.h鐨勫ご鏂囦歡銆?</strong> </p> <p><strong>  </strong> </p> <p><strong> 鎴戜滑鍦ㄧ畝鍗曚粙緇嶈繃ofstream綾誨拰ifstream綾誨悗錛屾垜浠啀鏉ョ湅涓涓媐stream綾伙紝fstream綾繪槸鐢? iostream媧劇敓鑰屾潵錛宖stream綾誨璞″彲浠ュ悓瀵規(guī)枃浠惰繘琛岃鍐欐搷浣溿?</strong> </p> <p><strong> 銆銆紺轟緥浠g爜濡備笅錛?%CODE{"cpp"}% #include <iostream></iostream>#include <fstream></fstream>using namespace std; int main() { fstream myfile; myfile.open("c:\\1.txt",ios::out|ios::app,0); if(myfile) { cout<<"鏂囦歡鍐欓敊璇?鏂囦歡灞炴у彲鑳戒負(fù)鍙!"<<endl; system("pause"); exit(1); } myfile<<"涓浗杞歡寮鍙戝疄楠屽"<<endl<<"緗戝潃錛?<<"www.cndev- lab.com"<<endl; myfile.close(); </strong> </p> <p><strong> myfile.open("c:\\1.txt",ios::in,0); if(myfile) { cout<<"鏂囦歡璇婚敊璇?鏂囦歡鍙兘涓㈠け!"<<endl; system("pause"); exit(1); } char ch; while(myfile.get(ch)) { cout.put(ch); } myfile.close(); system("pause"); } %ENDCODE% 鐢變簬fstream綾誨彲浠ュ鏂囦歡鍚屾椂榪涜璇誨啓鎿嶄綔錛屾墍浠ュ瀹冪殑瀵硅薄榪涜鍒濆璇濈殑鏃跺欎竴瀹氳鏄懼紡鐨勬寚瀹歮ode鍜宱penprot鍙傛暟銆?</strong> </p> <p><strong> 銆銆鎺ヤ笅鏉ユ垜浠潵瀛︿範(fàn)涓涓嬩覆嫻佺被鐨勫熀紜鐭ヨ瘑錛屼粈涔堝彨涓叉祦綾伙紵 </strong> </p> <h3><a name="3 strstream: ostrstream 鍜?istrs"></a>3 strstream: ostrstream 鍜?istrstream </h3> <strong> 銆銆綆鍗曠殑鐞嗚В灝辨槸鑳藉鎺у埗瀛楃涓茬被鍨嬪璞¤繘琛岃緭鍏ヨ緭鍑虹殑綾伙紝C++涓嶅厜鍙互鏀寔C++椋庢牸鐨勫瓧絎︿覆嫻佹帶鍒訛紝榪樺彲浠ユ敮鎸丆椋庢牸鐨勫瓧絎︿覆嫻? 鎺у埗銆?</strong> <p><strong> 銆銆鎴戜滑鍏堢湅鐪嬬湅C++鏄浣曞C椋庢牸鐨勫瓧絎︿覆嫻佽繘琛屾帶鍒剁殑錛孋涓殑瀛楃涓插叾瀹炰篃灝辨槸瀛楃鏁扮粍錛屽瓧絎︽暟緇勫唴鐨勬暟鎹湪鍐呭瓨涓殑浣嶇疆鐨? 鎺掑垪鏄繛緇殑錛屾垜浠氬父鐢?char str[size]鎴栬卌har *str鐨勬柟寮忓0鏄庡垱寤篊椋庢牸瀛楃鏁扮粍錛屼負(fù)浜嗚兘璁╁瓧絎︽暟緇勪綔涓鴻澶囧茍鎻愪緵杈撳叆杈撳嚭鎿嶄綔錛孋++寮曞叆浜唎strstream銆乮strstream銆? strstream榪欎笁涓被錛岃浣跨敤浠栦滑鍒涘緩瀵硅薄灝卞繀欏誨寘鍚玸trstream.h澶存枃浠躲?</strong> </p> <ul> <li><strong> istrstream綾葷敤浜庢墽琛孋椋庢牸鐨勪覆嫻佺殑杈撳叆鎿嶄綔錛屼篃灝辨槸浠ュ瓧絎︿覆鏁扮粍浣滀負(fù)杈撳叆璁懼銆?</strong> </li> <li><strong> ostrstream綾葷敤浜庢墽琛孋椋庢牸鐨勪覆嫻佺殑杈撳嚭鎿嶄綔錛屼篃灝辨槸涓瀛楃涓叉暟緇勪綔涓鴻緭鍑鴻澶囥?</strong> </li> <li><strong> strstream綾誨悓鏃跺彲浠ユ敮鎸丆椋庢牸鐨勪覆嫻佺殑杈撳叆杈撳嚭鎿嶄綔銆?</strong> </li> </ul> <p><strong> 銆銆istrstream綾繪槸浠巌stream錛堣緭鍏ユ祦綾伙級鍜宻trstreambase錛堝瓧絎︿覆嫻佸熀綾伙級媧劇敓鑰? 鏉ワ紝ostrstream鏄粠 ostream錛堣緭鍑烘祦綾伙級鍜宻trstreambase錛堝瓧絎︿覆嫻佸熀綾伙級媧劇敓鑰屾潵錛宻trstream鍒欐槸浠巌ostream(杈撳叆杈撳嚭嫻佺被)鍜屽拰 strstreambase錛堝瓧絎︿覆嫻佸熀綾伙級媧劇敓鑰屾潵銆?</strong> </p> <p><strong> 銆銆浠栦滑鐨勭戶鎵垮叧緋誨涓嬪浘鎵紺?<br><img alt="" src="http://www.pconline.com.cn/pcedu/empolder/gj/c/0504/pic/05cppios05.gif"> </strong> </p> <p><strong> 銆銆涓叉祦鍚屾牱涓嶆槸鏍囧噯璁懼錛屼笉浼?xì)鏈夐鍏堝畾涔夊ソ鐨勫叏灞瀵硅薄錛屾墍浠ヤ笉鑳界洿鎺ユ搷浣滐紝闇瑕侀氳繃鏋勯犲嚱鏁板垱寤哄璞°?</strong> </p> <p><strong> 綾籭strstream鐨勬瀯閫犲嚱鏁板師褰㈠涓嬶細(xì) %CODE{"cpp"}% istrstream::istrstream(const char *str,int size); %ENDCODE% 鍙傛暟1琛ㄧず瀛楃涓叉暟緇?鑰屽弬鏁?琛ㄧず鏁扮粍澶у皬錛屽綋size涓?鏃訛紝琛ㄧずistrstream綾誨璞$洿鎺ヨ繛鎺ュ埌鐢眘tr鎵鎸囧悜鐨勫唴瀛樼┖闂村茍浠0緇撳熬鐨? 瀛楃涓層?</strong> </p> <p><strong> 銆銆涓嬮潰鐨勭ず渚嬩唬鐮佸氨鏄埄鐢╥strstream綾誨垱寤虹被瀵硅薄錛屽埗瀹氭祦杈撳叆璁懼涓哄瓧絎︿覆鏁扮粍錛岄氳繃瀹冨悜涓涓瓧絎﹀瀷瀵硅薄杈撳叆鏁版嵁銆備唬 鐮佸涓嬶細(xì) %CODE{"cpp"}% #include <iostream></iostream>#include <strstream></strstream>using namespace std; int main() { char *name = "www.cndev-lab.com"; int arraysize = strlen(name)+1; istrstream is(name,arraysize); char temp; is>>temp; cout<<temp; system("pause"); } %ENDCODE% 綾籵strstream鐢ㄤ簬鎵ц涓叉祦鐨勮緭鍑猴紝瀹冪殑鏋勯犲嚱鏁板涓嬫墍紺猴細(xì) %CODE{"cpp"}% ostrstream::ostrstream(char *_Ptr,int streamsize,int Mode = ios::out); %ENDCODE% 銆銆絎竴涓弬鏁版槸瀛楃鏁扮粍錛岀浜屼釜鏄鏄庢暟緇勭殑澶у皬錛岀涓変釜鍙傛暟鏄寚鎵撳紑鏂瑰紡銆?</strong> </p> <p><strong> 銆銆鎴戜滑鏉ヤ竴涓ず渚嬩唬鐮侊細(xì) %CODE{"cpp"}% #include <iostream></iostream>#include <strstream></strstream>using namespace std; int main() { int arraysize=1; char *pbuffer=new char[arraysize]; ostrstream ostr(pbuffer,arraysize,ios::out); ostr<<arraysize<<ends;//浣跨敤ostrstream杈撳嚭鍒版祦瀵硅薄鐨勬椂鍊?瑕佺敤ends緇撴潫瀛楃涓? cout<<pbuffer; delete[] pbuffer; system("pause"); } %ENDCODE% 涓婇潰鐨勪唬鐮佷腑錛屾垜浠垱寤轟竴涓猚椋庢牸鐨勪覆嫻佽緭鍑哄璞str錛屾垜浠皢arraysize鍐呯殑鏁版嵁鎴愬姛鐨勪互瀛楃涓茬殑褰㈠紡杈撳嚭鍒頒簡ostr瀵硅薄鎵鎸囧悜鐨? pbuffer鎸囬拡鐨勫爢絀洪棿涓紝pbuffer涔熸鏄垜浠杈撳嚭鐨勫瓧絎︿覆鏁扮粍錛屽湪緇撳熬瑕佷嬌鐢╡nds緇撴潫瀛楃涓詫紝濡傛灉涓嶈繖涔堝仛灝辨湁婧㈠嚭鐨勫嵄闄┿?</strong> </p> <h3><a name="4 stringstream"></a>4 stringstream </h3> <strong> 瀵逛簬stringstream浜嗘潵璇達(dá)紝涓嶇敤鎴戝璇達(dá)紝澶у涔熷凡緇忕煡閬撳畠鏄敤浜嶤++椋庢牸鐨勫瓧絎︿覆鐨勮緭鍏ヨ緭鍑虹殑銆? stringstream鐨勬瀯閫犲嚱鏁板師褰㈠涓嬶細(xì) %CODE{"cpp"}% 銆銆stringstream::stringstream(string str); %ENDCODE% 銆銆紺轟緥浠g爜濡備笅: %CODE{"cpp"}% #include <iostream></iostream>#include <sstream></sstream>#include <string></string>using namespace std; </strong> <p><strong> int main() { stringstream ostr("ccc"); ostr.put('d'); ostr.put('e'); ostr<<"fg"; string gstr = ostr.str(); cout<<gstr<<endl; </strong> </p> <p><strong> char a; ostr>>a; cout<<a </strong> </p> <p><strong> system("pause"); } %ENDCODE% 闄ゆ鑰屽錛宻tringstream綾葷殑瀵硅薄鎴戜滑榪樺父鐢ㄥ畠榪涜string涓庡悇縐嶅唴緗被鍨嬫暟鎹箣闂寸殑杞崲銆傜ず渚嬩唬鐮佸涓嬶細(xì) %CODE{"cpp"}% #include <iostream></iostream>#include <sstream></sstream>#include <string></string>using namespace std; </strong> </p> <p><strong> int main() { stringstream sstr; //--------int杞瑂tring----------- int a=100; string str; sstr<<a; sstr>>str; cout<<str<<endl; //--------string杞琧har[]-------- sstr.clear();//濡傛灉浣犳兂閫氳繃浣跨敤鍚屼竴stringstream瀵硅薄瀹炵幇澶氱綾誨瀷鐨勮漿鎹紝璇鋒敞鎰忓湪姣忎竴嬈¤漿鎹箣鍚庨兘蹇呴』璋冪敤clear() 鎴愬憳鍑芥暟銆?string name = "colinguan"; char cname[200]; sstr<<name; sstr>>cname; cout<<cname; system("pause"); } %ENDCODE% 鎺ヤ笅鏉ユ垜浠潵瀛︿範(fàn)涓涓嬭緭鍏?杈撳嚭鐨勭姸鎬佹爣蹇楃殑鐩稿叧鐭ヨ瘑. </strong> </p> <h3><a name="5 io_state 杈撳叆/杈撳嚭鐨勭姸鎬佹爣蹇?></a>5 io_state 杈撳叆/杈撳嚭鐨勭姸鎬佹爣蹇?</h3> <strong> C++涓礋璐g殑杈撳叆/杈撳嚭鐨勭郴緇熷寘鎷簡鍏充簬姣忎竴涓緭鍏?杈撳嚭鎿嶄綔鐨勭粨鏋滅殑璁板綍淇℃伅銆傝繖浜涘綋鍓嶇殑鐘舵佷俊鎭鍖呭惈鍦╥o_state綾誨瀷鐨勫 璞′腑銆俰o_state鏄竴涓灇涓劇被鍨嬶紙灝卞儚open_mode涓鏍鳳級錛屼互涓嬩究鏄畠鍖呭惈鐨勫箋?</strong> <ul> <li><strong> goodbit 鏃犻敊璇?</strong> </li> <li><strong> Eofbit 宸插埌杈炬枃浠跺熬 </strong> </li> <li><strong> failbit 闈炶嚧鍛界殑杈撳叆/杈撳嚭閿欒錛屽彲鎸藉洖 </strong> </li> <li><strong> badbit銆鑷村懡鐨勮緭鍏?杈撳嚭閿欒,鏃犳硶鎸藉洖 </strong> </li> </ul> <p><strong> 鏈変袱縐嶆柟娉曞彲浠ヨ幏寰楄緭鍏?杈撳嚭鐨勭姸鎬佷俊鎭備竴縐嶆柟娉曟槸閫氳繃璋冪敤rdstate()鍑芥暟錛屽畠?yōu)畣杩斿洖褰撳墠鐘舵佺殑閿欒鏍囪銆備緥濡傦紝鍋囧娌? 鏈変換浣曢敊璇紝鍒檙dstate()浼?xì)杩斿洖goodbit.涓嬩緥紺轟緥錛岃〃紺哄嚭浜唕dstate()鐨勭敤娉曪細(xì) %CODE{"cpp"}% #include <iostream></iostream>using namespace std; </strong> </p> <p><strong> int main() { int a; cin>>a; cout<<cin.rdstate()<<endl; if(cin.rdstate() == ios::goodbit) { cout<<"杈撳叆鏁版嵁鐨勭被鍨嬫紜紝鏃犻敊璇紒"<<endl; } if(cin.rdstate() == ios_base::failbit) { cout<<"杈撳叆鏁版嵁綾誨瀷閿欒錛岄潪鑷村懡閿欒錛屽彲娓呴櫎杈撳叆緙撳啿鍖烘尳鍥烇紒"<<endl; } system("pause"); } %ENDCODE% 銆銆鍙︿竴縐嶆柟娉曞垯鏄嬌鐢ㄤ笅闈換浣曚竴涓嚱鏁版潵媯(gè)嫻嬬浉搴旂殑杈撳叆/杈撳嚭鐘舵侊細(xì) %CODE{"cpp"}% bool bad(); bool eof(); bool fail(); bool good(); %ENDCODE% </strong> </p> <p><strong> 銆銆涓嬩緥紺轟緥錛岃〃紺哄嚭浜嗕笂闈㈠悇鎴愬憳鍑芥暟鐨勭敤娉曪細(xì) %CODE{"cpp"}% #include <iostream></iostream>using namespace std; </strong> </p> <p><strong> int main() { int a; cin>>a; cout<<cin.rdstate()<<endl; if(cin.good()) { cout<<"杈撳叆鏁版嵁鐨勭被鍨嬫紜紝鏃犻敊璇紒"<<endl; } if(cin.fail()) { cout<<"杈撳叆鏁版嵁綾誨瀷閿欒錛岄潪鑷村懡閿欒錛屽彲娓呴櫎杈撳叆緙撳啿鍖烘尳鍥烇紒"<<endl; } system("pause"); } %ENDCODE% 濡傛灉閿欒鍙戠敓錛岄偅涔堟祦鐘舵佹棦琚爣璁頒負(fù)閿欒錛屼綘蹇呴』娓呴櫎榪欎簺閿欒鐘舵侊紝浠ヤ嬌浣犵殑紼嬪簭鑳芥紜傚綋鍦扮戶緇繍琛屻傝娓呴櫎閿欒鐘舵侊紝闇浣跨敤clear()鍑芥暟銆? 姝ゅ嚱鏁板甫涓涓弬鏁幫紝瀹冩槸浣犲皢瑕佽涓哄綋鍓嶇姸鎬佺殑鏍囧織鍊箋傦紝鍙灝唅os::goodbit浣滀負(fù)瀹炲弬銆?</strong> </p> <p><strong> 銆銆紺轟緥浠g爜濡備笅錛?%CODE{"cpp"}% #include <iostream></iostream>using namespace std; </strong> </p> <p><strong> int main() { int a; cin>>a; cout<<cin.rdstate()<<endl; cin.clear(ios::goodbit); cout<<cin.rdstate()<<endl; system("pause"); } %ENDCODE% 閫氬父褰撴垜浠彂鐜拌緭鍏ユ湁閿欏張闇瑕佹敼姝g殑鏃跺欙紝浣跨敤clear()鏇存敼鏍囪涓烘紜悗錛屽悓鏃朵篃闇瑕佷嬌鐢╣et()鎴愬憳鍑芥暟娓呴櫎杈撳叆緙撳啿鍖猴紝浠ヨ揪鍒伴噸澶嶈緭鍏ョ殑鐩? 鐨勩?</strong> </p> <p><strong> 銆銆紺轟緥浠g爜濡備笅錛?%CODE{"cpp"}% #include <iostream></iostream>using namespace std; </strong> </p> <p><strong> int main() { int a; while(1) { cin>>a; if(cin)//鏉′歡鍙敼鍐欎負(fù)cin.fail() { cout<<"杈撳叆鏈夐敊!璇烽噸鏂拌緭鍏?<<endl; cin.clear(); cin.get(); } else { cout<<a; break; } } system("pause"); } %ENDCODE% 銆銆鏈鍚庡啀緇欏嚭涓涓鏂囦歡嫻侀敊璇爣璁板鐞嗙殑渚嬪瓙錛屽琺鍥哄涔?fàn)锛屼唬鐮佸涓嬪Q? %CODE{"cpp"}% #include <iostream></iostream>#include <fstream></fstream>using namespace std; </strong> </p> <p><strong> int main() { ifstream myfile("c:\\1.txt",ios_base::in,0); if(myfile.fail()) { cout<<"鏂囦歡璇誨彇澶辮觸鎴栨寚瀹氭枃浠朵笉瀛樺湪!"<<endl; } else { char ch; while(myfile.get(ch)) { cout<<ch; } if(myfile.eof()) { cout<<"鏂囦歡鍐呭宸茬粡鍏ㄩ儴璇誨畬"<<endl; } while(myfile.get(ch)) { cout<<ch; } } system("pause"); } %ENDCODE%  </strong> </p> <br> <img src ="http://m.shnenglu.com/yuqilin1228/aggbug/110620.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/yuqilin1228/" target="_blank">LynnRaymond</a> 2010-03-26 22:03 <a href="http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110620.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆怌++甯歌瘑銆慍++杈撳叆杈撳嚭嫻?/title><link>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110619.html</link><dc:creator>LynnRaymond</dc:creator><author>LynnRaymond</author><pubDate>Fri, 26 Mar 2010 14:01:00 GMT</pubDate><guid>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110619.html</guid><wfw:comment>http://m.shnenglu.com/yuqilin1228/comments/110619.html</wfw:comment><comments>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110619.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/yuqilin1228/comments/commentRss/110619.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/yuqilin1228/services/trackbacks/110619.html</trackback:ping><description><![CDATA[<p>C++ 閫氳繃浠ヤ笅鍑犱釜綾繪敮鎸佹枃浠剁殑杈撳叆杈撳嚭錛?/p> <ul> <li>ofstream: 鍐欐搷浣滐紙杈撳嚭錛夌殑鏂囦歡綾?(鐢眔stream寮曠敵鑰屾潵) </li> <li>ifstream: 璇繪搷浣滐紙杈撳叆錛夌殑鏂囦歡綾?鐢眎stream寮曠敵鑰屾潵) </li> <li>fstream: 鍙悓鏃惰鍐欐搷浣滅殑鏂囦歡綾?(鐢眎ostream寮曠敵鑰屾潵) </li> </ul> <p> </p> <h3>鎵撳紑鏂囦歡(Open a file)</h3> <p>瀵硅繖浜涚被鐨勪竴涓璞℃墍鍋氱殑絎竴涓搷浣滈氬父灝辨槸灝嗗畠鍜屼竴涓湡姝g殑鏂囦歡鑱旂郴璧鋒潵錛屼篃灝辨槸璇存墦寮涓涓枃浠躲傝鎵撳紑鐨勬枃浠跺湪紼嬪簭涓敱涓涓祦瀵硅薄 (stream object)鏉ヨ〃紺?(榪欎簺綾葷殑涓涓疄渚? 錛岃屽榪欎釜嫻佸璞℃墍鍋氱殑浠諱綍杈撳叆杈撳嚭鎿嶄綔瀹為檯灝辨槸瀵硅鏂囦歡鎵鍋氱殑鎿嶄綔銆?/p> <p>瑕侀氳繃涓涓祦瀵硅薄鎵撳紑涓涓枃浠訛紝鎴戜滑浣跨敤瀹冪殑鎴愬憳鍑芥暟open()錛?/p> <p><code><font face="NSimsun">void open (const char * filename, openmode mode);</font></code>榪欓噷filename 鏄竴涓瓧絎︿覆錛屼唬琛ㄨ鎵撳紑鐨勬枃浠跺悕錛宮ode 鏄互涓嬫爣蹇楃鐨勪竴涓粍鍚堬細(xì)</p> <table border="1" cellpadding="3" cellspacing="0"> <tbody> <tr> <td>ios::in</td> <td>涓鴻緭鍏?璇?鑰屾墦寮 鏂囦歡</td> </tr> <tr> <td>ios::out</td> <td>涓鴻緭鍑?鍐?鑰屾墦寮 鏂囦歡</td> </tr> <tr> <td>ios::ate</td> <td>鍒濆浣嶇疆錛氭枃浠跺熬</td> </tr> <tr> <td>ios::app</td> <td>鎵鏈夎緭鍑洪檮鍔犲湪鏂囦歡 鏈熬</td> </tr> <tr> <td>ios::trunc</td> <td>濡傛灉鏂囦歡宸插瓨鍦ㄥ垯鍏? 鍒犻櫎璇ユ枃浠?/td> </tr> <tr> <td>ios::binary</td> <td>浜岃繘鍒舵柟寮?/td> </tr> </tbody> </table> <p>榪欎簺鏍囪瘑絎﹀彲浠ヨ緇勫悎浣跨敤錛屼腑闂翠互”鎴?#8221;鎿嶄綔絎?|)闂撮殧銆備緥濡傦紝濡傛灉鎴戜滑鎯寵浠ヤ簩榪涘埗鏂瑰紡鎵撳紑鏂囦歡”example.bin” 鏉ュ啓鍏ヤ竴浜涙暟鎹紝鎴戜滑鍙互閫氳繃浠ヤ笅鏂瑰紡璋冪敤鎴愬憳鍑芥暟open錛堬級鏉ュ疄鐜幫細(xì)</p> <p><code><font face="NSimsun">ofstream file;<br>file.open ("example.bin", ios::out | ios::app | ios::binary); </font></code>ofstream, ifstream 鍜?fstream鎵鏈夎繖浜涚被鐨勬垚鍛樺嚱鏁皁pen 閮藉寘鍚簡涓涓粯璁ゆ墦寮鏂囦歡鐨勬柟寮忥紝榪欎笁涓被鐨勯粯璁ゆ柟寮忓悇涓嶇浉鍚岋細(xì)</p> <table border="1" cellpadding="3" cellspacing="0"> <tbody> <tr> <th>綾?/th> <th>鍙傛暟鐨勯粯璁ゆ柟寮?/th> </tr> <tr> <td>ofstream</td> <td>ios::out | ios::trunc</td> </tr> <tr> <td>ifstream</td> <td>ios::in</td> </tr> <tr> <td>fstream</td> <td>ios::in | ios::out</td> </tr> </tbody> </table> <p>鍙湁褰撳嚱鏁拌璋冪敤鏃舵病鏈夊0鏄庢柟寮忓弬鏁扮殑鎯呭喌涓嬶紝榛樿鍊兼墠浼?xì)琚噰鐢ㄣ傚鏋滃嚱鏁拌璋冪敤鏃跺0鏄庝簡浠諱綍鍙傛暟錛岄粯璁ゅ煎皢琚畬鍏ㄦ敼鍐欙紝鑰屼笉浼?xì)涓庤皟鐢ㄥ弬鏁熬l勫悎銆?/p> <p>鐢變簬瀵圭被ofstream, ifstream 鍜?fstream 鐨勫璞℃墍榪涜鐨勭涓涓搷浣滈氬父閮芥槸鎵撳紑鏂囦歡錛岃繖浜涚被閮芥湁涓涓瀯閫犲嚱鏁板彲浠ョ洿鎺ヨ皟鐢╫pen 鍑芥暟錛屽茍鎷ユ湁鍚屾牱鐨勫弬鏁般傝繖鏍鳳紝鎴戜滑灝卞彲浠ラ氳繃浠ヤ笅鏂瑰紡榪涜涓庝笂闈㈠悓鏍風(fēng)殑瀹氫箟瀵硅薄鍜屾墦寮鏂囦歡鐨勬搷浣滐細(xì)</p> <p><code><font face="NSimsun">ofstream file ("example.bin", ios::out | ios::app | ios::binary);</font></code>涓ょ鎵撳紑鏂囦歡鐨勬柟寮忛兘鏄紜殑銆?/p> <p>浣犲彲浠ラ氳繃璋冪敤鎴愬憳鍑芥暟is_open()鏉ユ鏌ヤ竴涓枃浠舵槸鍚﹀凡緇忚欏哄埄鐨勬墦寮浜嗭細(xì)</p> <p><code><font face="NSimsun">bool is_open();</font></code>瀹冭繑鍥炰竴涓竷?yōu)?bool) 鍊鹼紝涓虹湡錛坱rue錛変唬琛ㄦ枃浠跺凡緇忚欏哄埄鎵撳紑錛屽亣( false )鍒欑浉鍙嶃?/p> <h3>鍏抽棴鏂囦歡(Closing a file)</h3> <p>褰撴枃浠惰鍐欐搷浣滃畬鎴愪箣鍚庯紝鎴戜滑蹇呴』灝嗘枃浠跺叧闂互浣挎枃浠墮噸鏂板彉涓哄彲璁塊棶鐨勩傚叧闂枃浠墮渶瑕佽皟鐢ㄦ垚鍛樺嚱鏁癱lose()錛屽畠璐熻矗灝嗙紦瀛樹腑鐨勬暟鎹帓鏀懼嚭鏉ュ茍 鍏抽棴鏂囦歡銆傚畠鐨勬牸寮忓緢綆鍗曪細(xì)</p> <p><code><font face="NSimsun">void close ();</font></code>榪欎釜鍑芥暟涓鏃﹁璋冪敤錛屽師鍏堢殑嫻? 瀵硅薄(stream object)灝卞彲浠ヨ鐢ㄦ潵鎵撳紑鍏跺畠鐨勬枃浠朵簡錛岃繖涓枃浠朵篃灝卞彲浠ラ噸鏂拌鍏跺畠鐨勮繘紼?process)鎵鏈夎闂簡銆?/p> <p>涓洪槻姝㈡祦瀵硅薄琚攢姣佹椂榪樿仈緋葷潃鎵撳紑鐨勬枃浠訛紝鏋愭瀯鍑芥暟(destructor)灝嗕細(xì)鑷姩璋冪敤鍏抽棴鍑芥暟close銆?/p> <h3>鏂囨湰鏂囦歡(Text mode files)</h3> <p>綾籵fstream, ifstream 鍜宖stream 鏄垎鍒粠ostream, istream 鍜宨ostream 涓紩鐢寵屾潵鐨勩傝繖灝辨槸涓轟粈涔?fstream 鐨勫璞″彲浠ヤ嬌鐢ㄥ叾鐖剁被鐨勬垚鍛樻潵璁塊棶鏁版嵁銆?/p> <p>涓鑸潵璇達(dá)紝鎴戜滑灝嗕嬌鐢ㄨ繖浜涚被涓庡悓鎺у埗鍙?console)浜や簰鍚屾牱鐨勬垚鍛樺嚱鏁?cin 鍜? cout)鏉ヨ繘琛岃緭鍏ヨ緭鍑恒傚涓嬮潰鐨勪緥棰樻墍紺猴紝鎴戜滑浣跨敤閲嶈澆鐨勬彃鍏ユ搷浣滅<<錛?/p> <table border="2" cellpadding="1" cellspacing="1" width="400"> <tbody> <tr> <td><font color="#008000">// writing on a text file</font><br>#include <fiostream.h>int main () {<br>ofstream examplefile (”example.txt”);<br>if (examplefile.is_open()) {<br>examplefile << “This is a line.\n”;<br>examplefile << “This is another line.\n”;<br>examplefile.close();<br>}<br>return 0;<br>}</td> <td><font color="#008000">file example.txt<br></font>This is a line.<br>This is another line.</td> </tr> </tbody> </table> <p>浠庢枃浠朵腑璇誨叆鏁版嵁涔熷彲浠ョ敤涓?cin鐨勪嬌鐢ㄥ悓鏍風(fēng)殑鏂規(guī)硶錛?/p> <table border="2" cellpadding="1" cellspacing="1" width="400"> <tbody> <tr> <td><font color="#008000">// reading a text file</font><br>#include <iostream.h><br>#include <fstream.h><br>#include <stdlib.h>int main () {<br>char buffer[256];<br>ifstream examplefile (”example.txt”);<br>if (! examplefile.is_open())<br>{ cout << “Error opening file”; exit (1); }<br>while (! examplefile.eof() ) {<br>examplefile.getline (buffer,100);<br>cout << buffer << endl;<br>}<br>return 0;<br>}</td> <td>This is a line.<br>This is another line.</td> </tr> </tbody> </table> <p>涓婇潰鐨勪緥瀛愯鍏ヤ竴涓枃鏈枃浠剁殑鍐呭錛岀劧鍚庡皢瀹冩墦鍗板埌灞忓箷涓娿傛敞鎰忔垜浠嬌鐢ㄤ簡涓涓柊鐨勬垚鍛樺嚱鏁板彨鍋歟of 錛屽畠鏄痠fstream 浠庣被 ios 涓戶鎵胯繃鏉ョ殑錛屽綋鍒拌揪鏂囦歡鏈熬鏃惰繑鍥瀟rue 銆?/p> <h3>鐘舵佹爣蹇楃鐨勯獙璇?Verification of state flags)</h3> <p>闄や簡eof()浠ュ錛岃繕鏈変竴浜涢獙璇佹祦鐨勭姸鎬佺殑鎴愬憳鍑芥暟錛堟墍鏈夐兘榪斿洖bool鍨嬭繑鍥炲鹼級錛?/p> <ul> <li><strong> bad()</strong> 濡傛灉鍦ㄨ鍐欒繃紼嬩腑鍑洪敊錛岃繑鍥?true 銆備緥濡傦細(xì)褰撴垜浠瀵逛竴涓笉鏄墦寮涓哄啓鐘舵佺殑鏂囦歡榪涜鍐欏叆鏃訛紝鎴栬呮垜浠鍐欏叆鐨勮澶囨病鏈夊墿浣欑┖闂寸殑鏃跺欍? </li> <li><strong> fail()</strong> 闄や簡涓巄ad() 鍚屾牱鐨勬儏鍐典笅浼?xì)杩斿?true 浠ュ錛屽姞涓婃牸寮忛敊璇椂涔熻繑鍥瀟rue 錛屼緥濡傚綋鎯寵璇誨叆涓涓暣鏁幫紝鑰岃幏寰椾簡涓涓瓧姣嶇殑鏃跺欍? </li> <li><strong> eof()</strong> 濡傛灉璇繪枃浠跺埌杈炬枃浠舵湯灝撅紝榪斿洖true銆? </li> <li><strong> good()</strong> 榪欐槸鏈閫氱敤鐨勶細(xì)濡傛灉璋冪敤浠ヤ笂浠諱綍涓涓嚱鏁拌繑鍥瀟rue 鐨勮瘽錛屾鍑芥暟榪斿洖 false 銆?</li> </ul> <p>瑕佹兂閲嶇疆浠ヤ笂鎴愬憳鍑芥暟鎵媯(gè)鏌ョ殑鐘舵佹爣蹇楋紝浣犲彲浠ヤ嬌鐢ㄦ垚鍛樺嚱鏁癱lear()錛屾病鏈夊弬鏁般?/p> <h3>鑾峰緱鍜岃緗祦鎸囬拡(get and put stream pointers)</h3> <p>鎵鏈夎緭鍏?杈撳嚭嫻佸璞?i/o streams objects)閮芥湁鑷沖皯涓涓祦鎸囬拡錛?/p> <ul> <li>ifstream錛?綾諱技istream, 鏈変竴涓縐頒負(fù)get pointer鐨勬寚閽堬紝鎸囧悜涓嬩竴涓皢琚鍙栫殑鍏冪礌銆? </li> <li>ofstream, 綾諱技 ostream, 鏈変竴涓寚閽?put pointer 錛屾寚鍚戝啓鍏ヤ笅涓涓厓绱犵殑浣嶇疆銆? </li> <li>fstream, 綾諱技 iostream, 鍚屾椂緇ф壙浜唃et 鍜?put </li> </ul> <p>鎴戜滑鍙互閫氳繃浣跨敤浠ヤ笅鎴愬憳鍑芥暟鏉ヨ鍑烘垨閰嶇疆榪欎簺鎸囧悜嫻佷腑璇誨啓浣嶇疆鐨勬祦鎸囬拡錛?/p> <ul> <li><strong> tellg() 鍜?tellp()</strong> 榪欎袱涓垚鍛樺嚱鏁頒笉鐢ㄤ紶鍏ュ弬鏁幫紝榪斿洖pos_type 綾誨瀷鐨勫?鏍規(guī)嵁ANSI-C++ 鏍囧噯) 錛屽氨鏄竴涓暣鏁幫紝浠h〃褰撳墠get 嫻佹寚閽堢殑浣嶇疆 (鐢╰ellg) 鎴?put 嫻佹寚閽堢殑浣嶇疆(鐢╰ellp). </li> <li><strong> seekg() 鍜宻eekp()</strong> 榪欏鍑芥暟鍒嗗埆鐢ㄦ潵鏀瑰彉?gòu)箒鎸囬拡get 鍜宲ut鐨勪綅緗備袱涓嚱鏁伴兘琚噸杞戒負(fù)涓ょ涓嶅悓鐨勫師鍨嬶細(xì) <p>seekg ( pos_type position );<br>seekp ( pos_type position );</p> <p>浣跨敤榪欎釜鍘熷瀷錛屾祦鎸囬拡琚敼鍙樹負(fù)鎸囧悜浠庢枃浠跺紑濮嬭綆楃殑涓涓粷瀵逛綅緗傝姹備紶鍏ョ殑鍙傛暟綾誨瀷涓庡嚱鏁?tellg 鍜宼ellp 鐨勮繑鍥炲肩被鍨嬬浉鍚屻?/p> <p>seekg ( off_type offset, seekdir direction );<br>seekp ( off_type offset, seekdir direction );</p> <p>浣跨敤榪欎釜鍘熷瀷鍙互鎸囧畾鐢卞弬鏁癲irection鍐沖畾鐨勪竴涓叿浣撶殑鎸囬拡寮濮嬭綆楃殑涓涓綅縐?offset)銆傚畠鍙互鏄細(xì)</p> <table border="1" cellpadding="3" cellspacing="0"> <tbody> <tr> <td>ios::beg</td> <td>浠庢祦寮濮嬩綅 緗綆楃殑浣嶇Щ</td> </tr> <tr> <td>ios::cur</td> <td>浠庢祦鎸囬拡褰? 鍓嶄綅緗紑濮嬭綆楃殑浣嶇Щ</td> </tr> <tr> <td>ios::end</td> <td>浠庢祦鏈熬澶? 寮濮嬭綆楃殑浣嶇Щ</td> </tr> </tbody> </table> </li> </ul> <p>嫻?鎸囬拡 get 鍜?put 鐨勫煎鏂囨湰鏂囦歡(text file)鍜屼簩榪涘埗鏂囦歡(binary file)鐨勮綆楁柟娉曢兘鏄笉鍚岀殑錛屽洜涓烘枃鏈ā寮忕殑鏂囦歡涓煇浜涚壒孌婂瓧絎﹀彲鑳借淇敼銆傜敱浜庤繖涓師鍥狅紝寤鴻瀵逛互鏂囨湰鏂囦歡妯″紡鎵撳紑鐨勬枃浠舵繪槸浣跨敤seekg 鍜? seekp鐨勭涓縐嶅師鍨嬶紝鑰屼笖涓嶈瀵箃ellg 鎴?tellp 鐨勮繑鍥炲艱繘琛屼慨鏀廣傚浜岃繘鍒舵枃浠訛紝浣犲彲浠ヤ換鎰忎嬌鐢ㄨ繖浜涘嚱鏁幫紝搴旇涓嶄細(xì)鏈変換浣曟剰澶栫殑琛屼負(fù)浜х敓銆?/p> <p>浠ヤ笅渚嬪瓙浣跨敤榪欎簺鍑芥暟鏉ヨ幏寰椾竴涓簩榪涘埗鏂囦歡鐨勫ぇ灝忥細(xì)</p> <table border="2" cellpadding="1" cellspacing="1" width="400"> <tbody> <tr> <td><font color="#008000">// obtaining file size<br><font color="#000000">#include <iostream.h><br>#include <fstream.h></font></font><font color="#008000"><font color="#000000">const char * filename = “example.txt”;</font></font><font color="#008000"><font color="#000000">int main () {<br>long l,m;<br>ifstream file (filename, ios::in|ios::binary);<br>l = file.tellg();<br>file.seekg (0, ios::end);<br>m = file.tellg();<br>file.close();<br>cout << “size of ” << filename;<br>cout << ” is ” << (m-l) << ” bytes.\n”;<br>return 0;<br>}</font></font></td> <td>size of example.txt<br>is 40 bytes.</td> </tr> </tbody> </table> <h3>浜岃繘鍒舵枃浠?Binary files)</h3> <p>鍦ㄤ簩榪涘埗鏂囦歡涓紝浣跨敤<< 鍜?gt;>錛屼互鍙?qiáng)鍑芥晭图堝getline錛夋潵鎿嶄綔絎﹁緭鍏ュ拰杈撳嚭鏁版嵁錛屾病鏈変粈涔堝疄闄呮剰涔夛紝铏界劧瀹冧滑鏄鍚堣娉曠殑銆?/p> <p>鏂?浠舵祦鍖呮嫭涓や釜涓洪『搴忚鍐欐暟鎹壒孌婅璁$殑鎴愬憳鍑芥暟錛歸rite 鍜?read銆傜涓涓嚱鏁?(write) 鏄痮stream 鐨勪竴涓垚鍛樺嚱鏁幫紝閮芥槸琚玱fstream鎵緇ф壙銆傝宺ead 鏄痠stream 鐨勪竴涓垚鍛樺嚱鏁幫紝琚玦fstream 鎵緇ф壙銆傜被 fstream 鐨勫璞″悓鏃舵嫢鏈夎繖涓や釜鍑芥暟銆傚畠浠殑鍘熷瀷鏄細(xì)</p> <p>write ( char * buffer, streamsize size );<br>read ( char * buffer, streamsize size );</p> <p>榪欓噷 buffer 鏄竴鍧楀唴瀛樼殑鍦板潃錛岀敤鏉ュ瓨鍌ㄦ垨璇誨嚭鏁版嵁銆傚弬鏁皊ize 鏄竴涓暣鏁板鹼紝琛ㄧず瑕佷粠緙撳瓨錛坆uffer錛変腑璇誨嚭鎴栧啓鍏ョ殑瀛楃鏁般?/p> <table border="2" cellpadding="1" cellspacing="1" width="400"> <tbody> <tr> <td><font color="#008000"><font color="#008000">// reading binary file</font><br><font color="#000000">#include <iostream><br>#include <fstream.h></font></font><font color="#008000"><font color="#000000">const char * filename = “example.txt”;</font></font><font color="#008000"><font color="#000000">int main () {<br>char * buffer;<br>long size;<br>ifstream file (filename, ios::in|ios::binary|ios::ate);<br>size = file.tellg();<br>file.seekg (0, ios::beg);<br>buffer = new char [size];<br>file.read (buffer, size);<br>file.close();</font></font><font color="#008000"><font color="#000000">cout << “the complete file is in a buffer”;</font></font><font color="#008000"><font color="#000000">delete[] buffer;<br>return 0;<br>}</font></font></td> <td>The complete file<br>is in a buffer</td> </tr> </tbody> </table> <h3>緙撳瓨鍜屽悓姝?Buffers and Synchronization)</h3> <p>褰?鎴戜滑瀵規(guī)枃浠舵祦榪涜鎿嶄綔鐨勬椂鍊欙紝瀹冧滑涓庝竴涓猻treambuf 綾誨瀷鐨勭紦瀛?buffer)鑱旂郴鍦ㄤ竴璧楓傝繖涓紦瀛橈紙buffer錛夊疄闄呮槸涓鍧楀唴瀛樼┖闂達(dá)紝浣滀負(fù)嫻?stream)鍜岀墿鐞嗘枃浠剁殑濯掍粙銆備緥濡傦紝瀵逛簬涓涓緭鍑烘祦錛? 姣忔鎴愬憳鍑芥暟put (鍐欎竴涓崟涓瓧絎?琚皟鐢紝榪欎釜瀛楃涓嶆槸鐩存帴琚啓鍏ヨ杈撳嚭嫻佹墍瀵瑰簲鐨勭墿鐞嗘枃浠朵腑鐨勶紝鑰屾槸棣栧厛琚彃鍏ュ埌璇ユ祦鐨勭紦瀛橈紙buffer錛変腑銆?/p> <p>褰撶紦瀛樿鎺掓斁鍑烘潵(flush)鏃訛紝瀹冮噷闈㈢殑鎵鏈夋暟鎹垨鑰呰鍐欏叆鐗╃悊濯掕川涓紙濡傛灉鏄竴涓緭鍑烘祦鐨勮瘽錛夛紝鎴栬呯畝鍗曠殑琚姽鎺?濡傛灉鏄竴涓緭鍏ユ祦鐨勮瘽)銆? 榪欎釜榪囩▼縐頒負(fù)鍚屾(synchronization)錛屽畠浼?xì)鍦ㄤ互涓嬩恢M竴鎯呭喌涓嬪彂鐢燂細(xì)</p> <ul> <li><strong> 褰撴枃浠惰鍏抽棴鏃?</strong> 鍦ㄦ枃浠惰鍏抽棴涔嬪墠錛屾墍鏈夎繕娌℃湁琚畬鍏ㄥ啓鍑烘垨璇誨彇鐨勭紦瀛橀兘灝嗚鍚屾銆? </li> <li><strong> 褰撶紦瀛榖uffer 婊℃椂:</strong> 緙撳瓨Buffers 鏈変竴瀹氱殑絀洪棿闄愬埗銆傚綋緙撳瓨婊℃椂錛屽畠浼?xì)琚嚜鍔ㄥ悓姝ャ? </li> <li><strong> 鎺у埗絎︽槑紜寚鏄?</strong> 褰撻亣鍒版祦涓煇浜涚壒瀹氱殑鎺у埗絎︽椂錛屽悓姝ヤ細(xì)鍙戠敓銆傝繖浜涙帶鍒剁鍖呮嫭錛歠lush 鍜宔ndl銆? </li> <li><strong> 鏄庣‘璋冪敤鍑芥暟sync():</strong> 璋冪敤鎴愬憳鍑芥暟sync() (鏃犲弬鏁?鍙互寮曞彂绔嬪嵆鍚屾銆傝繖涓嚱鏁拌繑鍥炰竴涓猧nt 鍊鹼紝絳変簬-1 琛ㄧず嫻佹病鏈夎仈緋葷殑緙撳瓨鎴栨搷浣滃け璐ャ?</li> </ul> <br><img src ="http://m.shnenglu.com/yuqilin1228/aggbug/110619.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/yuqilin1228/" target="_blank">LynnRaymond</a> 2010-03-26 22:01 <a href="http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110619.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆愯漿杞姐戝茍鏌ラ泦 (Union-Find Sets)http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110618.htmlLynnRaymondLynnRaymondFri, 26 Mar 2010 13:59:00 GMThttp://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110618.htmlhttp://m.shnenglu.com/yuqilin1228/comments/110618.htmlhttp://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110618.html#Feedback0http://m.shnenglu.com/yuqilin1228/comments/commentRss/110618.htmlhttp://m.shnenglu.com/yuqilin1228/services/trackbacks/110618.html闃呰鍏ㄦ枃

LynnRaymond 2010-03-26 21:59 鍙戣〃璇勮
]]>
銆愯漿杞姐戜粠闆跺紑濮嬪綆楁硶錛氬崄縐嶆帓搴忕畻娉曚粙緇?/title><link>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110617.html</link><dc:creator>LynnRaymond</dc:creator><author>LynnRaymond</author><pubDate>Fri, 26 Mar 2010 13:54:00 GMT</pubDate><guid>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110617.html</guid><wfw:comment>http://m.shnenglu.com/yuqilin1228/comments/110617.html</wfw:comment><comments>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110617.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/yuqilin1228/comments/commentRss/110617.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/yuqilin1228/services/trackbacks/110617.html</trackback:ping><description><![CDATA[<a title="Permanent link to 浠庨浂寮濮嬪綆楁硶錛氬崄縐嶆帓搴忕畻娉曚粙緇嶏紙涓婏級" rel="bookmark"><u><font color="#800080">浠庨浂寮濮嬪綆楁硶錛氬崄縐嶆帓搴忕畻娉曚粙緇嶏紙涓婏級</font></u></a>   From:Martix67銆愮墰鍟婏紒銆?br>浠婂ぉ鎴戞寮忓紑濮嬫寜鐓?a target="_blank"><u><font color="#0000ff">鎴戠殑鐩綍</font></u></a>鍐欐垜鐨凮I蹇冨緱浜嗐傛垜瑕佹妸 鎴戞墍鏈夊鍒扮殑OI鐭ヨ瘑浼犵粰浠ュ悗鍗冨崈涓囦竾鐨凮Ier銆備互鍓嶅啓榪囩殑涓浜涗笢瑗夸笉閲嶅鍐欎簡錛屼絾鎴戞渶鍚庡皢浼?xì)閲嶆柊鏁寸悊锛屼娇涔嬫垚湄?fù)涓涓畬鏁寸殑鏁欑▼銆?br>    鎸夌収 鎴戠殑鐩綍錛岃浠諱綍涓滆タ涔嬪墠鎴戦兘浼?xì)鍏堜粙缁嶆棄櫁村鏉傚害鐨勭浉鍏崇煡璇嗗Q屼互鍚庡姩涓嶅姩灝變細(xì)鎵埌榪欎釜涓滆タ銆傝繖涓凡緇忓啓榪囦簡錛屼綘鍙互鍦?a target="_blank"><u><font color="#0000ff">榪欓噷</font></u></a>鐪嬪埌閭g瘒鍙堣嚟鍙堥暱鐨勬枃绔犮傚湪璁? 鎺掑簭綆楁硶鐨勮繃紼嬩腑錛屾垜浠皢濮嬬粓鍥寸粫鏃墮棿澶嶆潅搴︾殑鍐呭榪涜璇存槑銆?br>    鎴戞妸榪欑瘒鏂囩珷縐頒箣涓?#8220;浠庨浂寮濮嬪綆楁硶”錛屽洜涓烘帓搴忕畻娉曟槸鏈鍩虹鐨勭畻娉曪紝浠嬬粛 綆楁硶鏃朵粠鍚勭鎺掑簭綆楁硶鍏ユ墜鏄渶濂戒笉榪囩殑浜嗐?br><br>    緇欏嚭n涓暟錛屾庢牱灝嗗畠浠粠灝忓埌澶ф帓搴忥紵涓嬮潰涓鍙f皵璁蹭笁縐嶅父鐢ㄧ殑綆楁硶錛屽畠浠槸鏈綆鍗曠殑銆? 鏈鏄劇劧鐨勩佹渶瀹規(guī)槗鎯沖埌鐨勩傞夋嫨鎺掑簭(Selection Sort)鏄錛屾瘡嬈′粠鏁板垪涓壘鍑轟竴涓渶灝忕殑鏁版斁鍒版渶鍓嶉潰鏉ワ紝鍐嶄粠鍓╀笅鐨刵-1涓暟涓夋嫨涓涓渶灝忕殑錛屼笉鏂仛涓嬪幓銆傛彃鍏ユ帓搴?Insertion Sort)鏄紝姣忔浠庢暟鍒椾腑鍙栦竴涓繕娌℃湁鍙栧嚭榪囩殑鏁幫紝騫舵寜鐓уぇ灝忓叧緋繪彃鍏ュ埌宸茬粡鍙栧嚭鐨勬暟涓嬌寰楀凡緇忓彇鍑虹殑鏁頒粛鐒舵湁搴忋傚啋娉℃帓搴?Bubble Sort)鍒嗕負(fù)鑻ュ共瓚熻繘琛岋紝姣忎竴瓚熸帓搴忎粠鍓嶅線鍚庢瘮杈冩瘡涓や釜鐩擱偦鐨勫厓绱犵殑澶у皬錛堝洜姝や竴瓚熸帓搴忚姣旇緝n-1瀵逛綅緗浉閭?cè)潥勬晭图夠q跺湪姣忔鍙戠幇鍓嶉潰鐨勯偅涓暟姣旂揣鎺ュ畠 鍚庣殑鏁板ぇ鏃朵氦鎹綅緗紱榪涜瓚沖澶氳稛鐩村埌鏌愪竴瓚熻窇瀹屽悗鍙戠幇榪欎竴瓚熸病鏈夎繘琛屼換浣曚氦鎹㈡搷浣滐紙鏈鍧忔儏鍐典笅瑕佽窇n-1瓚燂紝榪欑鎯呭喌鍦ㄦ渶灝忕殑鏁頒綅浜庣粰瀹氭暟鍒楃殑鏈鍚庨潰鏃? 鍙戠敓錛夈備簨瀹炰笂錛屽湪絎竴瓚熷啋娉$粨鏉熷悗錛屾渶鍚庨潰閭d釜鏁拌偗瀹氭槸鏈澶х殑浜嗭紝浜庢槸絎簩嬈″彧闇瑕佸鍓嶉潰n-1涓暟鎺掑簭錛岃繖鍙堝皢鎶婅繖n-1涓暟涓渶灝忕殑鏁版斁鍒版暣涓暟鍒? 鐨勫掓暟絎簩涓綅緗傝繖鏍蜂笅鍘伙紝鍐掓場鎺掑簭絎琲瓚熺粨鏉熷悗鍚庨潰i涓暟閮藉凡緇忓埌浣嶄簡錛岀i+1瓚熷疄闄呬笂鍙冭檻鍓峮-i涓暟錛堥渶瑕佺殑姣旇緝嬈℃暟姣斿墠闈㈡墍璇寸殑n-1瑕? 灝忥級銆傝繖鐩稿綋浜庣敤鏁板褰掔撼娉曡瘉鏄庝簡鍐掓場鎺掑簭鐨勬紜э細(xì)瀹炶川涓庨夋嫨鎺掑簭鐩稿悓銆備笂闈㈢殑涓変釜綆楁硶鎻忚堪鍙兘鏈夌偣妯$硦浜嗭紝娌℃槑鐧界殑璇濈綉涓婃壘璧勬枡錛屼唬鐮佸拰鍔ㄧ敾婕旂ず閬嶅湴 閮芥槸銆?br><img alt="" src="http://www.matrix67.com/blogimage/200703311.gif" border="0"><br>    榪? 涓夌綆楁硶闈炲父瀹規(guī)槗鐞嗚В錛屽洜涓烘垜浠敓媧誨綋涓粡甯稿湪鐢ㄣ傛瘮濡傦紝鐝笂鐨凪M鎼為夌編媧誨姩錛屾湁浜哄彨鎴戠粰鎵鏈塎M鎺掍釜鍚嶃傛垜浠氬父浼?xì)鐢ㄩ夋嫨鎺掑簭錛屽嵆鍏堟壘鍑鴻嚜宸辮涓烘渶婕? 浜殑錛岀劧鍚庢壘絎簩婕備寒鐨勶紝鐒跺悗鎵劇涓夋紓浜殑錛屼笉鏂壘鍓╀笅鐨勪漢涓渶婊℃剰鐨勩傛墦鎵戝厠鐗屾椂鎴戜滑甯屾湜鎶撳畬鐗屽悗鎵嬩笂鐨勭墝鏄湁搴忕殑錛屼笁涓?鎸ㄥ湪涓璧鳳紝鍚庨潰绱ф帴鐫涓や釜 9銆傝繖鏃訛紝鎴戜滑浼?xì)鋴社敤鎻掑叆鎺掑簭锛屾瘡娆℃嬁鍒颁竴寮犵墝鍚庢妸瀹冩彃鍏ュ埌鎵嬩笂鐨勭墝涓傚綋鐨勪綅緗備粈涔堟椂鍊欐垜浠細(xì)鐢ㄥ啋娉℃帓搴忓憿錛熸瘮濡傦紝浣撹偛璇句笂浠庣煯鍒伴珮鎺掗槦鏃訛紝绔欓槦瀹屾瘯 鍚庢諱細(xì)鏈変漢鍑烘潵錛屾瘮杈冩尐鐫鐨勪袱涓漢鐨勮韓楂橈紝鎸囨尌鍒幫細(xì)浣犱滑淇╄皟鎹竴涓嬶紝浣犱滑淇╂崲涓涓嬨?br>    榪欐槸寰堟湁鍚彂鎬х殑銆傝繖鍛婅瘔鎴戜滑錛屼粈涔堟椂鍊欑敤浠涔堟帓搴忔渶 濂姐傚綋浜轟滑娓存湜鍏堢煡閬撴帓鍦ㄥ墠闈㈢殑鏄皝鏃訛紝鎴戜滑鐢ㄩ夋嫨鎺掑簭錛?strong style="color: #0000ff;">褰撴垜浠笉鏂嬁 鍒版柊鐨勬暟騫舵兂淇濇寔宸叉湁鐨勬暟濮嬬粓鏈夊簭鏃訛紝鎴戜滑鐢ㄦ彃鍏ユ帓搴忥紱褰撶粰鍑虹殑鏁板垪宸茬粡姣旇緝鏈夊簭錛屽彧闇瑕佸皬騫呭害鐨勮皟鏁翠竴涓嬫椂錛屾垜浠敤鍐掓場鎺掑簭銆?<br><br>    鎴? 浠潵綆椾竴涓嬫渶鍧忔儏鍐典笅涓夌綆楁硶鍚勯渶瑕佸灝戞姣旇緝鍜岃祴鍊兼搷浣溿?br>    閫夋嫨鎺掑簭鍦ㄧi嬈¢夋嫨鏃惰祴鍊煎拰姣旇緝閮介渶瑕乶-i嬈★紙鍦╪-i+1涓暟涓変竴涓? 鍑烘潵浣滀負(fù)褰撳墠鏈灝忓鹼紝鍏朵綑n-i涓暟涓庡綋鍓嶆渶灝忓兼瘮杈冨茍涓嶆柇鏇存柊褰撳墠鏈灝忓鹼級錛岀劧鍚庨渶瑕佷竴嬈¤祴鍊兼搷浣溿傛誨叡闇瑕乶(n-1)/2嬈℃瘮杈冧笌n(n-1) /2+n嬈¤祴鍊箋?br>    鎻掑叆鎺掑簭鍦ㄧi嬈″鎵炬彃鍏ヤ綅緗椂闇瑕佹渶澶歩-1嬈℃瘮杈冿紙浠庡悗寰鍓嶆壘鍒扮涓涓瘮寰呮彃鍏ョ殑鏁板皬鐨勬暟錛屾渶鍧忔儏鍐靛彂鐢熷湪榪欎釜鏁版槸 鎵鏈夊凡緇忓彇鍑虹殑鏁頒腑鏈灝忕殑涓涓殑鏃跺欙級錛屽湪宸叉湁鏁板垪涓粰鏂扮殑鏁拌吘鍑轟綅緗渶瑕乮-1嬈¤祴鍊兼搷浣滄潵瀹炵幇錛岃繕闇瑕佷袱嬈¤祴鍊煎熷姪涓存椂鍙橀噺鎶婃柊鍙栧嚭鐨勬暟鎼繘鎼嚭銆備篃 灝辨槸璇達(dá)紝鏈鍧忔儏鍐典笅姣旇緝闇瑕乶(n-1)/2嬈★紝璧嬪奸渶瑕乶(n-1)/2+2n嬈°傛垜榪欎箞鍐欐湁鐐硅瀵間漢錛屽ぇ瀹朵笉瑕佷互涓虹▼搴忕殑瀹炵幇鐢ㄤ簡涓や釜鏁扮粍鍝︼紝鍏跺疄涓 涓暟緇勫氨澶熶簡錛岀湅鐪嬩笂闈㈢殑婕旂ず灝辯煡閬撲簡銆傛垜鍙綆楁硶錛屼竴鑸笉鍐欏浣曞疄鐜般傚綆楁硶鐨勯兘鏄己浜猴紝鐭ラ亾綆楁硶浜嗛兘鑳藉啓鍑轟竴涓紓浜殑浠g爜鏉ャ?br>    鍐掓場鎺? 搴忕i瓚熸帓搴忛渶瑕佹瘮杈僴-i嬈★紝n-1瓚熸帓搴忔誨叡n(n-1)/2嬈°傜粰鍑虹殑搴忓垪閫嗗簭鎺掑垪鏄渶鍧忕殑鎯呭喌錛岃繖鏃舵瘡涓嬈℃瘮杈冮兘瑕佽繘琛屼氦鎹㈡搷浣溿備竴嬈′氦鎹㈡搷浣滈渶 瑕?嬈¤祴鍊煎疄鐜幫紝鍥犳鍐掓場鎺掑簭鏈鍧忔儏鍐典笅闇瑕佽祴鍊?n(n-1)/2嬈°?br>    鎸夌収娓愯繘澶嶆潅搴︾悊璁猴紝蹇界暐鎵鏈夌殑甯告暟錛屼笁縐嶆帓搴忕殑鏈鍧忔儏鍐典笅澶嶆潅 搴﹂兘鏄竴鏍風(fēng)殑錛歄(n^2)銆備絾瀹為檯搴旂敤涓笁縐嶆帓搴忕殑鏁堢巼騫朵笉鐩稿悓銆傚疄璺佃瘉鏄庯紙鏀挎不鑰冭瘯鏃舵瘡閬撳ぇ棰橀兘瑕佺敤榪欏洓涓瓧錛夛紝鎻掑叆鎺掑簭鏄渶蹇殑錛堣櫧鐒舵渶鍧忔儏鍐典笅涓? 閫夋嫨鎺掑簭鐩稿綋鐢氳嚦鏇寸碂錛夛紝鍥犱負(fù)姣忎竴嬈℃彃鍏ユ椂瀵繪壘鎻掑叆鐨勪綅緗鏁版儏鍐靛彧闇瑕佷笌宸叉湁鏁扮殑涓閮ㄥ垎榪涜姣旇緝錛堜綘鍙兘鐭ラ亾榪欒繕鑳戒簩鍒嗭級銆備綘鎴栬浼?xì)璇村啋鎴鲦帓搴忎篃鍙互鍦? 鍗婅礬涓婂畬鎴愶紝榪樻病鏈夎窇鍒扮n-1瓚熷氨宸茬粡鏈夊簭銆備絾鍐掓場鎺掑簭鐨勪氦鎹㈡搷浣滄洿璐規(guī)椂錛岃屾彃鍏ユ帓搴忎腑鎵懼埌浜嗘彃鍏ョ殑浣嶇疆鍚庣Щ鍔ㄦ搷浣滃彧闇瑕佺敤璧嬪煎氨鑳藉畬鎴愶紙浣犲彲鑳界煡閬撹繖 榪樿兘鐢╩ove錛夈傛湰鏂囧悗闈㈠皢浠嬬粛鐨勪竴縐嶇畻娉曞氨鍒╃敤鎻掑叆鎺掑簭鐨勮繖浜涗紭鍔褲?br><br>    鎴戜滑璇佹槑浜嗭紝涓夌鎺掑簭鏂規(guī)硶鍦ㄦ渶鍧忔儏鍐典笅鏃墮棿澶嶆潅搴﹂兘鏄? O(n^2)銆備絾澶у鎯寵繃鍚楋紝榪欏彧鏄渶鍧忔儏鍐典笅鐨勩傚湪寰堝鏃跺欙紝澶嶆潅搴︽病鏈夎繖涔堝ぇ錛屽洜涓烘彃鍏ュ拰鍐掓場鍦ㄦ暟鍒楀凡緇忔瘮杈冩湁搴忕殑鎯呭喌涓嬮渶瑕佺殑鎿嶄綔榪滆繙浣庝簬n^2嬈? 錛堟渶濂芥儏鍐典笅鐢氳嚦鏄嚎鎬х殑錛夈傛姏寮閫夋嫨鎺掑簭涓嶈錛堝洜涓哄畠鐨勫鏉傚害鏄?#8220;姝?#8221;鐨勶紝瀵逛簬閫夋嫨鎺掑簭娌℃湁浠涔?#8220;濂?#8221;鐨勬儏鍐碉級錛屾垜浠笅闈㈡帰璁ㄦ彃鍏ユ帓搴忓拰鍐掓場鎺掑簭鍦ㄧ壒瀹? 鏁版嵁鍜屽鉤鍧囨儏鍐典笅鐨勫鏉傚害銆?br>    浣犱細(xì)鍙戠幇錛屽鏋滄妸鎻掑叆鎺掑簭涓殑縐誨姩璧嬪兼搷浣滅湅浣滄槸鎶婂綋鍓嶅彇鍑虹殑鍏冪礌涓庡墠闈㈠彇鍑虹殑涓旀瘮瀹冨ぇ鐨勬暟閫愪竴浜ゆ崲錛岄偅鎻掑叆 鎺掑簭鍜屽啋娉℃帓搴忓鏁版嵁鐨勫彉鍔ㄥ叾瀹為兘鏄浉閭誨厓绱犵殑浜ゆ崲鎿嶄綔銆備笅闈㈡垜浠鏄庯紝鑻ュ彧鑳藉鏁板垪涓浉閭?cè)潥勬暟杩涜浜ゆ崲鎿嶄綔锛屽浣曡绠椾娇寰梟涓暟鍙樺緱鏈夊簭鏈灝戦渶瑕佺殑浜ゆ崲 嬈℃暟銆?br>    鎴戜滑瀹氫箟閫嗗簭瀵圭殑姒傚康銆傚亣璁炬垜浠鎶婃暟鍒椾粠灝忓埌澶ф帓搴忥紝涓涓嗗簭瀵規(guī)槸鎸囩殑鍦ㄥ師鏁板垪涓紝宸﹁竟鐨勬煇涓暟姣斿彸杈圭殑澶с備篃灝辨槸璇達(dá)紝濡傛灉鎵懼埌 浜嗘煇涓猧鍜宩浣垮緱i<j涓擜i>Aj錛屾垜浠氨璇存垜浠壘鍒頒簡涓涓嗗簭瀵廣傛瘮濡傝錛屾暟鍒?,1,4,2涓湁涓変釜閫嗗簭瀵癸紝鑰屼竴涓凡緇忔湁搴忕殑鏁板垪閫嗗簭 瀵逛釜鏁頒負(fù)0銆傛垜浠彂鐜幫紝浜ゆ崲涓や釜鐩擱偦鐨勬暟鏈澶氭秷闄や竴涓嗗簭瀵癸紝涓斿啋娉℃帓搴忥紙鎴栨彃鍏ユ帓搴忥級涓殑涓嬈′氦鎹㈡伆濂借兘娑堥櫎涓涓嗗簭瀵廣傞偅涔堟樉鐒?dòng)灱屽師鏁板垪涓湁澶殲畱涓? 搴忓鍐掓場鎺掑簭錛堟垨鎻掑叆鎺掑簭錛夊氨闇瑕佸灝戞浜ゆ崲鎿嶄綔錛岃繖涓搷浣滄鏁頒笉鍙兘鍐嶅皯銆?br>    鑻ョ粰鍑虹殑n涓暟涓湁m涓嗗簭瀵癸紝鎻掑叆鎺掑簭鐨勬椂闂村鏉傚害鍙互璇? 鏄疧(m+n)鐨勶紝鑰屽啋娉℃帓搴忎笉鑳借繖涔堣錛屽洜涓哄啋娉℃帓搴忔湁寰堝“鏃犵敤”鐨勬瘮杈冿紙姣旇緝鍚庢病鏈変氦鎹級錛岃繖浜涙棤鐢ㄧ殑姣旇緝瓚呰繃浜哋(m+n)涓備粠榪欎釜鎰忎箟涓婅錛? 鎻掑叆鎺掑簭浠嶇劧鏇翠負(fù)浼樼錛屽洜涓哄啋娉℃帓搴忕殑澶嶆潅搴﹁鍙楀埌瀹冭窇鐨勮稛鏁扮殑鍒剁害銆備竴涓吀鍨嬬殑渚嬪瓙鏄繖鏍風(fēng)殑鏁板垪錛?, 2, 3, 4, 5, 6, 7, 1銆傚湪榪欐牱鐨勮緭鍏ユ暟鎹笅鎻掑叆鎺掑簭鐨勪紭鍔塊潪甯告槑鏄撅紝鍐掓場鎺掑簭鍙兘鍝潃鍠婁笂澶╀笉鍏?br>    鐒惰岋紝鎴戜滑騫朵笉鎯寵綆楁帓搴忕畻娉曞浜庢煇涓壒瀹氭暟鎹殑鏁堢巼銆傛垜 浠湡姝e叧蹇冪殑鏄紝瀵逛簬鎵鏈夊彲鑳藉嚭鐜扮殑鏁版嵁錛岀畻娉曠殑騫沖潎澶嶆潅搴︽槸澶氬皯銆備笉鐢ㄦ縺鍔ㄤ簡錛屽鉤鍧囧鏉傚害騫朵笉浼?xì)浣庝簬邈^鏂廣備笅闈㈣瘉鏄庯紝涓ょ綆楁硶鐨勫鉤鍧囧鏉傚害浠嶇劧鏄? O(n^2)鐨勩?br>    鎴戜滑浠呬粎璇佹槑綆楁硶闇瑕佺殑浜ゆ崲嬈℃暟騫沖潎涓篛(n^2)灝辮凍澶熶簡銆傚墠闈㈠凡緇忚榪囷紝瀹冧滑闇瑕佺殑浜ゆ崲嬈℃暟涓庨嗗簭瀵圭殑涓暟鐩稿悓銆傛垜 浠皢璇佹槑錛宯涓暟鐨勬暟鍒椾腑閫嗗簭瀵逛釜鏁板鉤鍧嘜(n^2)涓?br>    璁$畻鐨勬柟娉曟槸鍗佸垎宸у鐨勩傚鏋滄妸緇欏嚭鐨勬暟鍒楀弽榪囨潵錛堜粠鍚庡線鍓嶅掕繃鏉ュ啓錛夛紝浣犱細(xì)鍙? 鐜板師鏉ョ殑閫嗗簭瀵圭幇鍦ㄥ彉鎴愰『搴忕殑浜嗭紝鑰屽師鏉ユ墍鏈夌殑闈為嗗簭瀵圭幇鍦ㄩ兘鎴愰嗗簭浜嗐傛鍙嶄袱涓暟鍒楃殑閫嗗簭瀵逛釜鏁板姞璧鋒潵姝eソ灝辨槸鏁板垪鎵鏈夋暟瀵圭殑涓暟錛屽畠絳変簬n(n- 1)/2銆備簬鏄紝騫沖潎姣忎釜鏁板垪鏈塶(n-1)/4涓嗗簭瀵廣傚拷鐣ュ父鏁幫紝閫嗗簭瀵瑰鉤鍧囦釜鏁癘(n^2)銆?br>    涓婇潰鐨勮璁哄惎紺烘垜浠紝瑕佹兂鎼炲嚭涓涓 鏉傚害浣庝簬騫蟲柟綰у埆鐨勬帓搴忕畻娉曪紝鎴戜滑闇瑕佹兂鍔炴硶鑳芥妸紱誨緱鑰佽繙鐨勪袱涓暟榪涜鎿嶄綔銆?br><br>    浜轟滑鎯沖晩鎯沖晩鎯沖晩錛屾庝箞閮芥兂涓嶅嚭鎬庢牱鎵嶈兘鎼炲嚭澶嶆潅搴? 浣庝簬騫蟲柟鐨勭畻娉曘傚悗鏉ワ紝鑻遍泟鍑虹幇浜嗭紝Donald Shell鍙戞槑浜嗕竴縐嶆柊鐨勭畻娉曪紝鎴戜滑灝嗚瘉鏄庡畠鐨勫鏉傚害鏈鍧忔儏鍐典笅涔熸病鏈塐(n^2) 錛堜技涔庢湁浜轟笉鍠滄鐮旂┒姝g‘鎬у拰澶嶆潅搴︾殑璇佹槑錛屾垜浼?xì)鐢ㄥ疄渚嬪憡璇夊ぇ瀹跺Q岃繖浜涜瘉鏄庢槸闈炲父鏈夋剰鎬濈殑錛夈備粬鎶婅繖縐嶇畻娉曞彨鍋歋hell澧為噺鎺掑簭綆楁硶錛堝ぇ瀹跺父璇寸殑甯屽皵鎺? 搴忥級銆?br>    Shell鎺掑簭綆楁硶渚濊禆涓縐嶇О涔嬩負(fù)“鎺掑簭澧為噺”鐨勬暟鍒楋紝涓嶅悓鐨勫閲忓皢瀵艱嚧涓嶅悓鐨勬晥鐜囥傚亣濡傛垜浠20涓暟榪涜鎺掑簭錛屼嬌鐢ㄧ殑澧為噺涓? 1,3,7銆傞偅涔堬紝鎴戜滑棣栧厛瀵硅繖20涓暟榪涜“7-鎺掑簭”(7-sortedness)銆傛墍璋?-鎺掑簭錛屽氨鏄寜鐓т綅緗櫎浠?鐨勪綑鏁板垎緇勮繘琛屾帓搴忋傚叿浣撳湴 璇達(dá)紝鎴戜滑灝嗘妸鍦?銆?銆?5涓変釜浣嶇疆涓婄殑鏁拌繘琛屾帓搴忥紝灝嗙2銆?銆?6涓暟榪涜鎺掑簭錛屼緷姝ょ被鎺ㄣ傝繖鏍鳳紝瀵逛簬浠繪剰涓涓暟瀛梜錛屽崟鐪婣(k), A(k+7), A(k+14), …榪欎簺鏁版槸鏈夊簭鐨勩?-鎺掑簭鍚庯紝鎴戜滑鎺ョ潃鍙堣繘琛屼竴瓚?-鎺掑簭錛堝埆蹇樹簡鎴戜滑浣跨敤鐨勬帓搴忓閲忎負(fù)1,3,7錛夈傛渶鍚庤繘琛?-鎺掑簭錛堝嵆鏅氱殑鎺掑簭錛夊悗鏁翠釜 Shell綆楁硶瀹屾垚銆傜湅鐪嬫垜浠殑渚嬪瓙錛?br><br>  3 7 9 0 5 1 6 8 4 2 0 6 1 5 7 3 4 9 8 2  <-- 鍘熸暟鍒?br>  3 3 2 0 5 1 5 7 4 4 0 6 1 6 8 7 9 9 8 2  <-- 7-鎺掑簭鍚?br>  0 0 1 1 2 2 3 3 4 4 5 6 5 6 8 7 7 9 8 9  <-- 3-鎺掑簭鍚?br>  0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9  <-- 1-鎺掑簭鍚庯紙瀹屾垚錛?br><br>    鍦ㄦ瘡涓瓚熴佹瘡涓緇勭殑鎺掑簭涓垜浠繪槸浣跨敤鎻掑叆鎺掑簭銆備粩緇嗚瀵熶笂闈㈢殑渚嬪瓙浣犱細(xì)鍙戠幇鏄粈涔堝鑷翠簡 Shell鎺掑簭鐨勯珮鏁堛傚錛屾瘡涓瓚熸帓搴忓皢浣垮緱鏁板垪閮ㄥ垎鏈夊簭錛屼粠鑰屼嬌寰椾互鍚庣殑鎻掑叆鎺掑簭寰堝揩鎵懼埌鎻掑叆浣嶇疆銆傛垜浠笅闈㈠皢绱х揣鍥寸粫榪欎竴鐐規(guī)潵璇佹槑Shell鎺掑簭綆楁硶 鐨勬椂闂村鏉傚害涓婄晫銆?br>    鍙鎺掑簭澧為噺鐨勭涓涓暟鏄?錛孲hell鎺掑簭綆楁硶灝辨槸姝g‘鐨勩備絾鏄笉鍚岀殑澧為噺灝嗗鑷翠笉鍚岀殑鏃墮棿澶嶆潅搴︺傛垜浠笂闈緥瀛愪腑 鐨勫閲?1, 3, 7, 15, 31, …, 2^k-1)鏄嬌鐢ㄦ渶騫挎硾鐨勫閲忓簭鍒椾箣涓錛屽彲浠ヨ瘉鏄庝嬌鐢ㄨ繖涓閲忕殑鏃墮棿澶嶆潅搴︿負(fù)O(n√n)銆傝繖涓瘉鏄庡緢綆鍗曪紝澶у鍙互鍙傜湅涓浜涘叾瀹冪殑璧勬枡錛屾垜浠粖澶╀笉璇? 鏄庡畠銆備粖澶╂垜浠瘉鏄庯紝浣跨敤澧為噺1, 2, 3, 4, 6, 8, 9, 12, 16, …, 2^p*3^q錛屾椂闂村鏉傚害涓篛(n*(log n)^2)銆?br>    寰堟樉鐒?dòng)灱屼恢M綍涓涓ぇ浜?鐨勬鏁存暟閮藉彲浠ヨ〃紺轟負(fù)2x+3y錛屽叾涓瓁鍜寉鏄潪璐熸暣鏁般備簬鏄紝濡傛灉涓涓暟鍒楀凡緇忔槸2-鎺掑簭鐨勪笖鏄? 3-鎺掑簭鐨勶紝閭d箞瀵逛簬姝ゆ椂鏁板垪涓殑姣忎竴涓暟A(i)錛屽畠鐨勫乏杈規(guī)瘮瀹冨ぇ鐨勫彧鏈夊彲鑳芥槸A(i-1)銆侫2緇濆涓嶅彲鑳芥瘮A12澶э紝鍥犱負(fù)10鍙互琛ㄧず涓轟袱涓?鍜屼袱 涓?鐨勫拰錛屽垯A2<A4<A6<A9<A12銆傞偅涔堬紝鍦ㄨ繖涓閲忎腑鐨?-鎺掑簭鏃舵瘡涓暟鎵炬彃鍏ヤ綅緗彧闇瑕佹瘮杈冧竴嬈°備竴鍏辨湁n涓暟錛? 鎵浠?-鎺掑簭鏄疧(n)鐨勩備簨瀹炰笂錛岃繖涓閲忎腑鐨?-鎺掑簭涔熸槸O(n)錛屽洜涓哄湪2-鎺掑簭涔嬪墠錛岃繖涓暟鍒楀凡緇忔槸4-鎺掑簭涓?-鎺掑簭榪囩殑錛屽彧鐪嬫暟鍒楃殑濂囨暟欏規(guī)垨 鑰呭伓鏁伴」錛堝嵆鍗曠湅姣忎竴緇勶級鐨勮瘽灝卞張鎴愪簡鍒氭墠鐨勬牱瀛愩傝繖涓閲忓簭鍒楀閥濡欏氨宸у鍦紝濡傛灉鎴戜滑瑕佽繘琛宧-鎺掑簭錛岄偅涔堝畠涓瀹氭槸2h-鎺掑簭榪囦笖3h-鎺掑簭榪囷紝浜庢槸澶? 鐞嗘瘡涓暟A(i)鐨勬彃鍏ユ椂灝卞彧闇瑕佸拰A(i-h)榪涜姣旇緝銆傝繖涓粨璁哄浜庢渶寮濮嬪嚑嬈★紙h鍊艱緝澶ф椂錛夌殑h-鎺掑簭鍚屾牱鎴愮珛錛屽綋2h銆?h澶т簬n鏃訛紝鎸夌収瀹氫箟錛? 鎴戜滑涔熷彲浠ヨ涓烘暟鍒楁槸2h-鎺掑簭鍜?h-鎺掑簭鐨勶紝榪欏茍涓嶅獎(jiǎng)鍝嶄笂榪扮粨璁虹殑姝g‘鎬э紙浣犱篃鍙互璁や負(fù)h澶ぇ浠ヨ嚧浜庢帓搴忔椂姣忎竴緇勯噷鐨勬暟瀛椾笉瓚呰繃3涓紝灞炰簬甯告暟綰э級銆? 鐜板湪錛岃繖涓閲忎腑鐨勬瘡涓瓚熸帓搴忛兘鏄疧(n)鐨勶紝鎴戜滑鍙渶瑕佹暟涓涓嬩竴鍏辮窇浜嗗灝戣稛銆備篃灝辨槸璇達(dá)紝鎴戜滑鐜板湪鍙渶瑕佺煡閬撳皬浜巒鐨勬暟涓湁澶氬皯涓暟鍏鋒湁2^p*3^q 鐨勫艦寮忋傝鎯?^p*3^q涓嶈秴榪噉錛宲鐨勫彇鍊兼渶澶歄(log n)涓紝q鐨勫彇鍊兼渶澶氫篃鏄疧(log n)涓紝涓や袱緇勫悎鐨勮瘽鍏辨湁O(logn*logn)縐嶆儏鍐點(diǎn)備簬鏄紝榪欐牱鐨勫閲忔帓搴忛渶瑕佽窇O((log n)^2)瓚燂紝姣忎竴瓚熺殑澶嶆潅搴(n)錛屾葷殑澶嶆潅搴︿負(fù)O(n*(log n)^2)銆傛棭灝辮榪囦簡錛岃瘉鏄庢椂闂村鏉傚害鍏跺疄寰堟湁鎰忔濄?br>    鎴戜滑鑷劧 浼?xì)鎯冲Q屾湁娌℃湁鑳戒嬌澶嶆潅搴﹂檷鍒癘(nlogn)鐢氳嚦鏇翠綆鐨勫閲忓簭鍒椼傚緢閬楁喚錛岀幇鍦ㄦ病鏈変換浣曡抗璞¤〃鏄庡瓨鍦∣(nlogn)鐨勫閲忔帓搴忋備絾浜嬪疄涓婏紝寰堝鏃跺? Shell鎺掑簭鐨勫疄闄呮晥鐜囪秴榪囦簡O(nlogn)鐨勬帓搴忕畻娉曘?br><br>    鍚庨潰鎴戜滑灝嗕粙緇嶄笁縐峅(nlogn)鐨勬帓搴忕畻娉曞拰涓夌綰挎ф椂闂寸殑鎺? 搴忕畻娉曘傛渶鍚庢垜浠皢浠ュ閮ㄦ帓搴忓拰鎺掑簭緗戠粶緇撴潫榪欎竴绔犺妭銆?br><br>    寰堝浜洪棶鍒版垜鍏充簬杞創(chuàng)鐨勯棶棰樸傛垜嬈㈣繋闄ゅ晢涓氱洰鐨勫浠諱綍褰㈠紡鐨勮漿璐達(dá)紙璁哄潧銆? Blog銆乄iki銆佷釜浜虹綉绔欍丳odCast錛岀敋鑷沖仛鎴恜pt銆乸df錛夛紝浣嗕竴瀹氳娉ㄦ槑鍑哄錛屾渶濂戒繚鐣欏師濮嬮摼鎺ャ傛垜鐨勭綉绔欓渶瑕佺偣鍙嶅悜閾炬帴鎵嶈兘鍦ㄧ綉緇滀腑鐢? 瀛樹笅鍘伙紝澶у涔熼兘鍙互鍏蟲敞騫朵笖鎺ㄥ箍榪欎釜Blog銆傛垜涓鐩存敮鎸乧c鐗堟潈鍗忚錛屽洜姝ゅ彂鐜頒簡鏂囩珷涓殑闂鎴栬呮兂瑕佽ˉ鍏呬粈涔堜笢瑗垮敖綆℃彁鍑烘潵錛屽ソ璁╂洿澶氱殑浜哄涔?fàn)鍒板? 涓滆タ銆傛垜鏄ㄥぉ鐪婤log涓婂師鏉ュ啓鐨勪竴浜涗笢瑗匡紝灞呯劧榪炵潃鍙戠幇浜嗗嚑涓敊璇紡瀛愬拰閿欏埆瀛楋紝濂藉澶у灞呯劧娌℃湁鎻愬嚭鏉ャ傚彂鐜頒簡闂鐪熺殑瑕佸憡璇夋垜錛屽嵆浣挎牸寮忔湁鐐歸棶棰樹篃 瑕佽涓涓嬶紝鍐充笉鑳借瀹冮偅涔堥敊鐫銆傚彟澶栨湁浠涔堝緩璁垨鎯蟲硶涔熻璇翠竴涓嬶紝鎴戝笇鏈涘惉鍒頒笉鍚岀殑澹伴煶涓嶅悓鐨勮瑙o紝濂借鎴戝喅瀹氳繖綾繪枃绔犱互鍚庣殑鍙戝睍鏂瑰悜銆?br><br>Matrix67 鍘熷垱<br>杞創(chuàng)璇鋒敞鏄庡嚭澶?br><br><a title="Permanent link to 浠庨浂寮濮嬪綆楁硶錛氬崄縐嶆帓搴忕畻娉曚粙緇嶏紙涓婏級" rel="bookmark"><u><font color="#800080">浠庨浂寮濮嬪綆楁硶錛氬崄縐嶆帓搴忕畻娉曚粙緇嶏紙涓級</font></u></a><br> 鏈枃琚崕涓界殑鍒嗗壊綰垮垎涓轟簡鍥涙銆傚 浜嶰(nlogn)鐨勬帓搴忕畻娉曪紝鎴戜滑璇︾粏浠嬬粛褰掑茍鎺掑簭騫惰瘉鏄庡綊騫舵帓搴忕殑鏃墮棿澶嶆潅搴︼紝鐒跺悗綆鍗曚粙緇嶅爢鎺掑簭錛屼箣鍚庣粰鍑哄揩閫熸帓搴忕殑鍩烘湰鎬濇兂鍜屽鏉傚害璇佹槑銆傛渶鍚庢垜 浠皢璇佹槑錛孫(nlogn)鍦ㄧ悊璁轟笂宸茬粡杈懼埌浜嗘渶浼樸傚榪嘜I鐨勪漢涓鑸兘瀛﹁繃榪欎簺寰堝熀紜鐨勪笢瑗匡紝澶у鏁癘Ier浠笉蹇呯湅浜嗐備負(fù)浜嗕繚鎸佺郴鍒楁枃绔犵殑瀹屾暣鎬э紝鎴? 榪樻槸鑺辨椂闂村啓浜嗕竴涓嬨?br><br>    棣栧厛鑰冭檻涓涓畝鍗曠殑闂錛氬浣曞湪綰挎х殑鏃墮棿鍐呭皢涓や釜鏈夊簭闃熷垪鍚堝茍涓轟竴涓湁搴忛槦鍒楋紙騫惰緭鍑猴級錛?br><br>A 闃熷垪錛? 3 5 7 9<br>B闃熷垪錛? 2 7 8 9<br><br>    鐪嬩笂闈㈢殑渚嬪瓙錛孉B涓や釜搴忓垪閮芥槸宸茬粡鏈夊簭鐨勪簡銆傚湪緇欏嚭鏁版嵁宸茬粡鏈夊簭鐨勬儏鍐典笅錛屾垜 浠細(xì)鍙戠幇寰堝紲炲鐨勪簨錛屾瘮濡傦紝鎴戜滑灝嗚杈撳嚭鐨勭涓涓暟涓瀹氭潵鑷簬榪欎袱涓簭鍒楀悇鑷渶鍓嶉潰鐨勯偅涓暟銆備袱涓暟閮芥槸1錛岄偅涔堟垜浠殢渚垮彇鍑轟竴涓紙姣斿A闃熷垪鐨勯偅涓? 1錛夊茍杈撳嚭錛?br><br>A闃熷垪錛?s>1</s> 3 5 7 9<br>B闃熷垪錛? 2 7 8 9<br>杈撳嚭錛?<br><br>    娉ㄦ剰錛屾垜浠彇鍑轟簡涓涓暟錛屽湪鍘熸暟鍒椾腑鍒犻櫎榪欎釜鏁般傚垹闄ゆ搷浣滄槸閫氳繃縐誨姩闃熼鎸囬拡瀹? 鐜扮殑錛屽惁鍒欏鏉傚害灝遍珮浜嗐?br>    鐜板湪錛孉闃熷垪鎵撳ご鐨勬暟鍙樻垚3浜嗭紝B闃熷垪鐨勯槦棣栦粛鐒舵槸1銆傛鏃訛紝鎴戜滑鍐嶆瘮杈?鍜?鍝釜澶у茍杈撳嚭灝忕殑閭d釜鏁幫細(xì)<br><br>A闃熷垪錛?s>1</s> 3 5 7 9<br>B闃熷垪錛?s>1</s> 2 7 8 9<br>杈撳嚭錛? 1<br><br>    鎺? 涓嬫潵鐨勫嚑姝ュ涓嬶細(xì)<br><br>A闃熷垪錛?s>1</s> 3 5 7 9         A闃熷垪錛?s>1 3</s> 5 7 9         A闃熷垪錛?s>1 3 5</s> 7 9          A闃熷垪錛?s>1 3 5 7</s> 9<br>B闃熷垪錛?s>1 2</s> 7 8 9   ==>   B闃熷垪錛?s>1 2</s> 7 8 9   ==>   B闃熷垪錛?s>1 2</s> 7 8 9    ==>   B闃熷垪錛?s>1 2</s> 7 8 9     ……<br>杈撳嚭錛? 1 2              杈撳嚭錛? 1 2 3            杈撳嚭錛? 1 2 3 5           杈撳嚭錛? 1 2 3 5 7<br><br>    鎴戝笇鏈涗綘鏄庣櫧浜嗚繖鏄庝箞鍋氱殑銆傝繖涓仛娉曟樉鐒舵槸姝g‘鐨勶紝澶嶆潅 搴︽樉鐒舵槸綰挎с?br><br>    褰掑茍鎺掑簭(Merge Sort)灝嗕細(xì)鐢ㄥ埌涓婇潰鎵璇寸殑鍚堝茍鎿嶄綔銆傜粰鍑轟竴涓暟鍒楋紝褰掑茍鎺掑簭鍒╃敤鍚堝茍鎿嶄綔鍦∣(nlogn)鐨勬椂闂村唴灝嗘暟鍒椾粠灝忓埌澶ф帓搴忋傚綊騫舵帓搴忕敤鐨勬槸鍒嗘不 (Divide and Conquer)鐨勬濇兂銆傞鍏堟垜浠妸緇欏嚭鐨勬暟鍒楀鉤鍒嗕負(fù)宸﹀彸涓ゆ錛岀劧鍚庡涓ゆ鏁板垪鍒嗗埆榪涜鎺掑簭錛屾渶鍚庣敤鍒氭墠鐨勫悎騫剁畻娉曟妸榪欎袱孌碉紙宸茬粡鎺掕繃搴忕殑錛夋暟鍒楀悎騫朵負(fù)涓 涓暟鍒椼傛湁浜轟細(xì)闂?#8220;瀵瑰乏鍙充袱孌墊暟鍒楀垎鍒帓搴忔椂鐢ㄧ殑浠涔堟帓搴?#8221;涔堬紵絳旀鏄細(xì)鐢ㄥ綊騫舵帓搴忋備篃灝辨槸璇達(dá)紝鎴戜滑閫掑綊鍦版妸姣忎竴孌墊暟鍒楀張鍒嗘垚涓ゆ榪涜涓婅堪鎿嶄綔銆備綘涓嶉渶瑕? 鍏沖績瀹為檯涓婃槸鎬庝箞鎿嶄綔鐨勶紝鎴戜滑鐨勭▼搴忎唬鐮佸皢閫掑綊璋冪敤璇ヨ繃紼嬬洿鍒版暟鍒椾笉鑳藉啀鍒嗭紙鍙湁涓涓暟錛変負(fù)姝€?br>    鍒濈湅榪欎釜綆楁硶鏃舵湁浜轟細(xì)璇互涓烘椂闂村鏉傚害鐩? 褰撻珮銆傛垜浠笅闈㈢粰鍑虹殑涓涓浘灝嗙敤闈為掑綊鐨勭溂鍏夋潵鐪嬪綊騫舵帓搴忕殑瀹為檯鎿嶄綔榪囩▼錛屼緵澶у鍙傝冦傛垜浠彲浠ュ熷姪榪欎釜鍥捐瘉鏄庯紝褰掑茍鎺掑簭綆楁硶鐨勬椂闂村鏉傚害涓? O(nlogn)銆?br><br>[3] [1] [4] [1] [5] [9] [2] [7]<br>  \ /     \ /     \ /     \ /<br>[1 3]   [1 4]   [5 9]   [2 7]<br>     \   /           \   /<br>   [1 1 3 4]       [2 5 7 9]<br>           \       /<br>       [1 1 2 3 4 5 7 9]<br><br>    涓婂浘涓殑姣忎竴涓?#8220; \ / ”琛ㄧず鐨勬槸涓婃枃鎵榪扮殑綰挎ф椂闂村悎騫舵搷浣溿備笂鍥劇敤浜?琛屾潵鍥捐В褰掑茍鎺掑簭銆傚鏋滄湁n涓暟錛岃〃紺烘垚涓婂浘鏄劇劧闇瑕丱(logn)琛屻傛瘡涓琛岀殑鍚堝茍鎿嶄綔澶嶆潅搴︽誨拰閮? 鏄疧(n)錛岄偅涔坙ogn琛岀殑鎬誨鏉傚害涓篛(nlogn)銆傝繖鐩稿綋浜庣敤閫掑綊鏍?wèi)鐨勬栆?guī)硶瀵瑰綊騫舵帓搴忕殑澶嶆潅搴﹁繘琛屼簡鍒嗘瀽銆傚亣璁撅紝褰掑茍鎺掑簭鐨勫鏉傚害涓? T(n)錛孴(n)鐢變袱涓猅(n/2)鍜屼竴涓叧浜巒鐨勭嚎鎬ф椂闂寸粍鎴愶紝閭d箞T(n)=2*T(n/2)+O(n)銆備笉鏂睍寮榪欎釜寮忓瓙鎴戜滑鍙互鍚屾牱鍙互寰楀埌 T(n)=O(nlogn)鐨勭粨璁猴紝浣犲彲浠ヨ嚜宸辮瘯璇曘傚鏋滀綘鑳藉湪綰挎х殑鏃墮棿閲屾妸鍒嗗埆璁$畻鍑虹殑涓ょ粍涓嶅悓鏁版嵁鐨勭粨鏋滃悎騫跺湪涓璧鳳紝鏍規(guī)嵁 T(n)=2*T(n/2)+O(n)=O(nlogn)錛岄偅涔堟垜浠氨鍙互鏋勯燨(nlogn)鐨勫垎娌葷畻娉曘傝繖涓粨璁哄悗闈㈢粡甯哥敤銆傛垜浠皢鍦ㄨ綆楀嚑浣曢儴鍒嗕婦 涓澶у爢綾諱技鐨勪緥瀛愩?br>    濡傛灉浣犵涓嬈¤鍒拌繖涔堣寮傜殑綆楁硶錛屼綘鍙兘浼?xì)瀵?a target="_blank"><strong> <font color="#618898">榪欎釜</font></strong> </a>鎰熷叴瓚c? 鍒嗘不鏄掑綊鐨勪竴縐嶅簲鐢ㄣ傝繖鏄垜浠涓嬈℃帴瑙﹂掑綊榪愮畻銆備笅闈㈣鐨勫揩閫熸帓搴忎篃鏄敤鐨勯掑綊鐨勬濇兂銆傞掑綊紼嬪簭鐨勫鏉傚害鍒嗘瀽閫氬父鍜屼笂闈竴鏍鳳紝涓誨畾鐞?Master Theory)鍙互綆鍖栬繖涓垎鏋愯繃紼嬨備富瀹氱悊鍜屾湰鏂囧唴瀹圭寰楀お榪滐紝鎴戜滑浠ュ悗涔熶笉浼?xì)鐢ㄥ畠锛屽洜姝ゆ垜浠笉浠嬀l嶅畠錛屽ぇ瀹跺彲浠ヨ嚜宸卞幓鏌ャ傛湁涓悕璇嶅湪榪欓噷鐨勮瘽鎵懼涔?fàn)璧? 鏂欏皢鍙樺緱闈炲父瀹規(guī)槗錛屾垜鏈鎬曠殑灝辨槸涓涓笢瑗夸笉鐭ラ亾鍙粈涔堝悕瀛楋紝鍗婂ぉ鎵句笉鍒拌祫鏂欍?br><br>    褰掑茍鎺掑簭鏈変竴涓湁瓚g殑鍓駭鍝併傚埄鐢ㄥ綊騫舵帓搴忚兘澶熷湪 O(nlogn)鐨勬椂闂撮噷璁$畻鍑虹粰瀹氬簭鍒楅噷閫嗗簭瀵圭殑涓暟銆備綘鍙互鐢ㄤ換浣曚竴縐嶅鉤琛′簩鍙夋爲(wèi)鏉ュ畬鎴愯繖涓搷浣滐紝浣嗙敤褰掑茍鎺掑簭緇熻閫嗗簭瀵規(guī)洿鏂逛究銆傛垜浠璁洪嗗簭瀵逛竴鑸? 鏄鐨勪竴涓帓鍒椾腑鐨勯嗗簭瀵癸紝鍥犳榪欓噷鎴戜滑鍋囪鎵鏈夋暟涓嶇浉鍚屻傚亣濡傛垜浠兂瑕佹暟1, 6, 3, 2, 5, 4涓湁澶氬皯涓嗗簭瀵癸紝鎴戜滑棣栧厛鎶婅繖涓暟鍒楀垎涓哄乏鍙充袱孌點(diǎn)傞偅涔堜竴涓嗗簭瀵瑰彧鍙兘鏈変笁縐嶆儏鍐碉細(xì)涓や釜鏁伴兘鍦ㄥ乏杈癸紝涓や釜鏁伴兘鍦ㄥ彸杈癸紝涓涓湪宸︿竴涓湪鍙熾傚湪宸﹀彸涓ゆ 鍒嗗埆澶勭悊瀹屽悗錛岀嚎鎬у悎騫剁殑榪囩▼涓垜浠彲浠ラ『渚跨畻鍑烘墍鏈夌涓夌鎯呭喌鐨勯嗗簭瀵規(guī)湁澶氬皯涓傛崲鍙ヨ瘽璇達(dá)紝鎴戜滑鑳藉湪綰挎х殑鏃墮棿閲岀粺璁″嚭A闃熷垪鐨勬煇涓暟姣擝闃熷垪鐨勬煇涓暟 澶ф湁澶氬皯縐嶆儏鍐點(diǎn)?br><br>A闃熷垪錛? 3 6         A闃熷垪錛?s>1</s> 3 6         A闃熷垪錛?s>1</s> 3 6         A闃熷垪錛?s>1 3</s> 6         A闃熷垪錛?s>1 3</s> 6<br>B闃熷垪錛? 4 5   ==>   B闃熷垪錛? 4 5   ==>   B闃熷垪錛?s>2</s> 4 5   ==>   B闃熷垪錛?s>2</s> 4 5   ==>   B闃熷垪錛?s>2 4</s> 5   ……<br>杈? 鍑猴細(xì)               杈撳嚭錛?              杈撳嚭錛? 2            杈撳嚭錛? 2 3          杈撳嚭錛? 2 3 4<br><br>    姣忎竴嬈′粠B闃熷垪鍙栧嚭涓涓暟鏃訛紝鎴戜滑灝辯煡閬撲簡鍦ˋ闃熷垪涓湁澶氬皯涓暟姣擝 闃熷垪鐨勮繖涓暟澶э紝瀹冪瓑浜嶢闃熷垪鐜板湪榪樺墿鐨勬暟鐨勪釜鏁般傛瘮濡傦紝褰撴垜浠粠B闃熷垪涓彇鍑?鏃訛紝鎴戜滑鍚屾椂鐭ラ亾浜咥闃熷垪鐨?鍜?涓や釜鏁版瘮2澶с傚湪鍚堝茍鎿嶄綔涓垜浠笉鏂洿 鏂癆闃熷垪涓繕鍓╁嚑涓暟錛屽湪姣忔浠嶣闃熷垪涓彇鍑轟竴涓暟鏃舵妸褰撳墠A闃熷垪鍓╃殑鏁扮洰鍔犺繘鏈緇堢瓟妗堥噷銆傝繖鏍鋒垜浠畻鍑轟簡鎵鏈?#8220;澶х殑鏁板湪鍓嶄竴鍗婏紝灝忕殑鏁板湪鍚庝竴鍗?#8221;鐨勬儏 鍐碉紝鍏朵綑鎯呭喌涓嬬殑閫嗗簭瀵瑰湪榪欎箣鍓嶅凡緇忚閫掑綊鍦扮畻榪囦簡銆?br><br>============================鍗庝附鐨勫垎鍓? 綰?===========================<br><br>    鍫嗘帓搴?Heap Sort)鍒╃敤浜嗗爢(Heap)榪欑鏁版嵁緇撴瀯錛?a target="_blank"><strong> <font color="#618898">浠涔堟槸鍫嗭紵</font></strong> </a>錛夈? 鍫嗙殑鎻掑叆鎿嶄綔鏄鉤鍧囧父鏁扮殑錛岃屽垹闄や竴涓牴鑺傜偣闇瑕佽姳璐筄(log n)鐨勬椂闂淬傚洜姝わ紝瀹屾垚鍫嗘帓搴忛渶瑕佺嚎鎬ф椂闂村緩绔嬪爢錛堟妸鎵鏈夊厓绱犱緷嬈℃彃鍏ヤ竴涓爢錛夛紝鐒跺悗鐢ㄦ誨叡O(jiān)(nlogn)鐨勬椂闂翠笉鏂彇鍑烘渶灝忕殑閭d釜鏁般傚彧瑕佸爢浼?xì)鎼炲Q屽爢 鎺掑簭灝變細(xì)鎼炪傚爢鍦ㄩ偅綃囨棩蹇楅噷鏈夎緇嗙殑璇存槑錛屽洜姝よ繖閲屼笉閲嶅璇翠簡銆?br><br>============================鍗庝附鐨勫垎鍓? 綰?===========================<br><br>    蹇熸帓搴?Quick Sort)涔熷簲鐢ㄤ簡閫掑綊鐨勬濇兂銆傛垜浠兂瑕佹妸緇欏畾搴忓垪鍒嗘垚涓ゆ錛屽茍瀵硅繖涓ゆ鍒嗗埆榪涜鎺掑簭銆備竴縐嶄笉閿欑殑鎯蟲硶鏄紝閫夊彇涓涓暟浣滀負(fù)“鍏抽敭瀛?#8221;錛屽茍鎶婂叾瀹冩暟鍒嗗壊涓轟袱 閮ㄥ垎錛屾妸鎵鏈夊皬浜庡叧閿瓧鐨勬暟閮芥斁鍦ㄥ叧閿瓧鐨勫乏杈癸紝澶т簬鍏抽敭瀛楃殑閮芥斁鍦ㄥ彸杈癸紝鐒跺悗閫掑綊鍦板宸﹁竟鍜屽彸杈硅繘琛屾帓搴忋傛妸璇ュ尯闂村唴鐨勬墍鏈夋暟渚濇涓庡叧閿瓧姣旇緝錛屾垜浠氨 鍙互鍦ㄧ嚎鎬х殑鏃墮棿閲屽畬鎴愬垎鍓茬殑鎿嶄綔銆傚畬鎴愬垎鍓叉搷浣滄湁寰堝鏈夋妧宸фх殑瀹炵幇鏂規(guī)硶錛屾瘮濡傛渶甯哥敤鐨勪竴縐嶆槸瀹氫箟涓や釜鎸囬拡錛屼竴涓粠鍓嶅線鍚庢壘鎵懼埌姣斿叧閿瓧澶х殑錛屼竴涓粠鍚? 寰鍓嶆壘鍒版瘮鍏抽敭瀛楀皬鐨勶紝鐒跺悗涓や釜鎸囬拡瀵瑰簲鐨勫厓绱犱氦鎹綅緗茍緇х畫縐誨姩鎸囬拡閲嶅鍒氭墠鐨勮繃紼嬨傝繖鍙槸澶ц嚧鐨勬柟娉曪紝鍏蜂綋鐨勫疄鐜拌繕鏈夊緢澶氱粏鑺傞棶棰樸傚揩閫熸帓搴忔槸鎴戜滑鏈 甯哥敤鐨勪唬鐮佷箣涓錛岀綉涓婄殑蹇熸帓搴忎唬鐮佷簲鑺卞叓闂紝鍚勭璇█錛屽悇縐嶉鏍肩殑閮芥湁銆傚ぇ瀹跺彲浠ラ殢渚挎壘涓涓潵鐪嬬湅錛屾垜璇磋繃浜嗘垜浠綆楁硶浣嗕笉璁插浣曞疄鐜般侼OIp寰堢畝 鍗曪紝寰堝浜篘OIp鍓嶅氨鑳屼簡涓涓揩閫熸帓搴忎唬鐮佸氨涓婃垬鍦轟簡銆傚綋鏃舵垜鎶婂揩閫熸帓搴忚儗瀹屼簡錛屾姄绱ф椂闂磋繕欏轟究鑳屼簡涓涓嬪巻鍙詫紝鍏嶅緱鏅氫笂鍚啓鍙堜笉鍙?qiáng)鏍笺?br>    涓? 鍍忓綊騫舵帓搴忥紝蹇熸帓搴忕殑鏃墮棿澶嶆潅搴﹀緢闅捐綆椼傛垜浠彲浠ョ湅鍒幫紝褰掑茍鎺掑簭鐨勫鏉傚害鏈鍧忔儏鍐典笅涔熸槸O(nlogn)鐨勶紝鑰屽揩閫熸帓搴忕殑鏈鍧忔儏鍐墊槸O(n^2)鐨勩? 濡傛灉姣忎竴嬈¢夌殑鍏抽敭瀛楅兘鏄綋鍓嶅尯闂撮噷鏈澶э紙鎴栨渶灝忥級鐨勬暟錛岄偅涔堣繖鏍峰皢浣垮緱姣忎竴嬈$殑瑙勬ā鍙噺灝忎竴涓暟錛岃繖鍜屾彃鍏ユ帓搴忋侀夋嫨鎺掑簭絳夊鉤鏂圭駭鎺掑簭娌℃湁鍖哄埆銆傝繖縐嶆儏 鍐典笉鏄笉鍙兘鍙戠敓銆傚鏋滀綘姣忔閫夋嫨鍏抽敭瀛楅兘鏄夋嫨鐨勮鍖洪棿鐨勭涓涓暟錛岃岀粰浣犵殑鏁版嵁鎭板ソ鍙堟槸宸茬粡鏈夊簭鐨勶紝閭d綘鐨勫揩閫熸帓搴忓氨瀹岃泲浜嗐傛樉鐒?dòng)灱屾渶濂芥儏鍐墊槸姣忎竴嬈? 閫夌殑鏁版濂藉氨鏄腑浣嶆暟錛岃繖灝嗘妸璇ュ尯闂村鉤鍒嗕負(fù)涓ゆ錛屽鏉傚害鍜屽墠闈㈣璁虹殑褰掑茍鎺掑簭涓妯′竴鏍楓傛牴鎹繖涓鐐癸紝蹇熸帓搴忔湁涓浜涘父鐢ㄧ殑浼樺寲銆傛瘮濡傦紝鎴戜滑緇忓父浠庢暟鍒椾腑闅? 鏈哄彇涓涓暟褰撲綔鏄叧閿瓧錛堣屼笉鏄瘡嬈℃繪槸鍙栧浐瀹氫綅緗笂鐨勬暟錛夛紝浠庤屽敖鍙兘閬垮厤鏌愪簺鐗規(guī)畩鐨勬暟鎹墍瀵艱嚧鐨勪綆鏁堛傛洿濂界殑鍋氭硶鏄殢鏈哄彇涓変釜鏁板茍閫夋嫨榪欎笁涓暟鐨勪腑浣? 鏁頒綔涓哄叧閿瓧銆傝屽涓変釜鏁扮殑闅忔満鍙栧煎弽鑰屽皢鑺辮垂鏇村鐨勬椂闂達(dá)紝鍥犳鎴戜滑鐨勮繖涓変釜鏁板彲浠ュ垎鍒彇鏁板垪鐨勫ご涓涓暟銆佹湯涓涓暟鍜屾涓棿閭d釜鏁般傚彟澶栵紝褰撻掑綊鍒頒簡涓瀹? 娣卞害鍙戠幇褰撳墠鍖洪棿閲岀殑鏁板彧鏈夊嚑涓垨鍗佸嚑涓椂錛岀戶緇掑綊涓嬪幓鍙嶈岃垂鏃訛紝涓嶅榪斿洖鎻掑叆鎺掑簭鍚庣殑緇撴灉銆傝繖縐嶆柟娉曞悓鏃墮伩鍏嶄簡褰撴暟瀛楀お灝戞椂閫掑綊鎿嶄綔鍑洪敊鐨勫彲鑳姐?br><br>    涓? 闈㈡垜浠瘉鏄庯紝蹇熸帓搴忕畻娉曠殑騫沖潎澶嶆潅搴︿負(fù)O(nlogn)銆備笉鍚岀殑涔︿笂鏈変笉鍚岀殑瑙i噴鏂規(guī)硶錛岃繖閲屾垜閫夌敤綆楁硶瀵艱涓婄殑璁叉硶銆傚畠鏇存湁鎶宸фт竴浜涳紝鏇存湁瓚d竴浜涳紝闇 瑕佽漿鍑犱釜寮墠鑳芥兂鏄庣櫧銆?br>    鐪嬩竴鐪嬪揩閫熸帓搴忕殑浠g爜銆傛濡傛垜浠彁鍒拌繃鐨勯偅縐嶅垎鍓叉柟娉曪紝紼嬪簭鍦ㄧ粡榪囪嫢騫叉涓庡叧閿瓧鐨勬瘮杈冨悗鎵嶈繘琛屼竴嬈′氦鎹紝鍥犳姣? 杈冪殑嬈℃暟姣斾氦鎹㈡鏁版洿澶氥傛垜浠氳繃璇佹槑涓嬈″揩閫熸帓搴忎腑鍏冪礌涔嬮棿鐨勬瘮杈冩鏁板鉤鍧囦負(fù)O(nlogn)鏉ヨ鏄庡揩閫熸帓搴忕畻娉曠殑騫沖潎澶嶆潅搴︺傝瘉鏄庣殑鍏抽敭鍦ㄤ簬錛屾垜浠渶 瑕佺畻鍑烘煇涓や釜鍏冪礌鍦ㄦ暣涓畻娉曡繃紼嬩腑榪涜榪囨瘮杈冪殑姒傜巼銆?br>    鎴戜滑涓句竴涓緥瀛愩傚亣濡傜粰鍑轟簡1鍒?0榪?0涓暟錛岀涓嬈¢夋嫨鍏抽敭瀛?灝嗗畠浠垎鎴愪簡 {1,2,3,4,5,6}鍜寋8,9,10}涓ら儴鍒嗭紝閫掑綊宸﹁竟鏃舵垜浠夋嫨浜?浣滀負(fù)鍏抽敭瀛楋紝浣垮緱宸﹂儴鍒嗗張琚垎鍓蹭負(fù){1,2}鍜寋4,5,6}銆傛垜浠湅鍒幫紝 鏁板瓧7涓庡叾瀹冩墍鏈夋暟閮芥瘮杈冭繃涓嬈★紝榪欐牱鎵嶈兘瀹炵幇鍒嗗壊鎿嶄綔銆傚悓鏍峰湴錛?鍒?榪?涓暟閮介渶瑕佷笌3榪涜涓嬈℃瘮杈冿紙闄や簡瀹冩湰韜箣澶栵級銆傜劧鑰岋紝3鍜?鍐充笉鍙兘鐩鎬簰姣? 杈冭繃錛?鍜?涔熶笉鍙兘榪涜榪囨瘮杈冿紝鍥犱負(fù)絎竴嬈″嚭鐜板湪3鍜?錛?鍜?涔嬮棿鐨勫叧閿瓧鎶婂畠浠垎鍓插紑浜嗐備篃灝辨槸璇達(dá)紝涓や釜鏁癆(i)鍜孉(j)姣旇緝榪囷紝褰撲笖浠呭綋絎竴 涓弧瓚矨(i)<=x<=A(j)鐨勫叧閿瓧x鎭板ソ灝辨槸A(i)鎴朅(j) 錛堝亣璁続(i)姣擜(j)灝忥級銆傛垜浠О鎺掑簭鍚庣i灝忕殑鏁頒負(fù)Z(i)錛屽亣璁緄<j錛岄偅涔堢涓嬈″嚭鐜板湪Z(i)鍜孼(j)涔嬮棿鐨勫叧閿瓧鎭板ソ灝辨槸Z(i) 鎴朲(j)鐨勬鐜囦負(fù)2/(j-i+1)錛岃繖鏄洜涓哄綋Z(i)鍜孼(j)涔嬮棿榪樹笉鏇炬湁榪囧叧閿瓧鏃訛紝Z(i)鍜孼(j)澶勪簬鍚屼竴涓緟鍒嗗壊鐨勫尯闂達(dá)紝涓嶇榪欎釜鍖洪棿 鏈夊澶э紝涓嶇閫掑綊鍒板摢閲屼簡錛屽叧閿瓧鐨勯夋嫨鎬繪槸闅忔満鐨勩傛垜浠緱鍒幫紝Z(i)鍜孼(j)鍦ㄤ竴嬈″揩閫熸帓搴忎腑鏇劇粡姣旇緝榪囩殑姒傜巼涓?/(j-i+1)銆?br>    鐜? 鍦ㄦ湁鍥涗釜鏁幫紝2,3,5,7銆傛帓搴忔椂錛岀浉閭?cè)潥勪袱涓暟鑲畾閮借姣旇緝杩囧Q?鍜?銆?鍜?閮芥湁2/3鐨勬鐜囪姣旇緝榪囷紝2鍜?涔嬮棿琚瘮杈冭繃鏈?/4鐨勫彲鑳姐備篃灝辨槸 璇達(dá)紝濡傛灉瀵硅繖鍥涗釜鏁板仛12嬈″揩閫熸帓搴忥紝閭d箞2鍜?銆?鍜?銆?鍜?涔嬮棿涓鍏辨瘮杈冧簡12*3=36嬈★紝2鍜?銆?鍜?涔嬮棿鎬誨叡姣旇緝浜?*2=16嬈★紝2鍜? 涔嬮棿騫沖潎姣旇緝浜?嬈°傞偅涔堬紝12嬈℃帓搴忎腑鎬葷殑姣旇緝嬈℃暟鏈熸湜鍊間負(fù)36+16+6=58銆傛垜浠彲浠ヨ綆楀嚭鍗曟鐨勫揩閫熸帓搴忓鉤鍧囨瘮杈冧簡澶氬皯嬈★細(xì)58/12=29 /6銆傚叾瀹烇紝瀹冨氨絳変簬6欏規(guī)鐜囦箣鍜岋紝1+1+1+2/3+2/3+2/4=29/6銆傝繖鍏跺疄鏄笌鏈熸湜鍊肩浉鍏崇殑涓涓叕寮忋?br>    鍚屾牱鍦幫紝濡傛灉鏈塶 涓暟錛岄偅涔堝揩閫熸帓搴忓鉤鍧囬渶瑕佺殑姣旇緝嬈℃暟鍙互鍐欐垚涓嬮潰鐨勫紡瀛愩備護(hù)k=j-i錛屾垜浠兘澶熸渶緇堝緱鍒版瘮杈冩鏁扮殑鏈熸湜鍊間負(fù)O(nlogn)銆?br>   <img alt="" src="http://www.matrix67.com/blogimage/200704061.gif" border="0"><br>    榪? 閲岀敤鍒頒簡涓涓煡璇嗭細(xì)1+1/2+1/3+…+1/n涓巐og n澧為暱閫熷害鐩稿悓錛屽嵆Σ(1/n)=Θ(log n)銆傚畠鐨勮瘉鏄庢斁鍦ㄦ湰鏂囩殑鏈鍚庛?br><br>    鍦? 涓夌O(nlogn)鐨勬帓搴忕畻娉曚腑錛屽揩閫熸帓搴忕殑鐞嗚澶嶆潅搴︽渶涓嶇悊鎯籌紝闄や簡瀹冧互澶栦粖澶╄鐨勫彟澶栦袱縐嶇畻娉曢兘鏄互鏈鍧忔儏鍐礝(nlogn)鐨勫鏉傚害榪涜鎺掑簭銆備絾 瀹炶返涓婄湅蹇熸帓搴忔晥鐜囨渶楂橈紙涓嶇劧涓哄暐鍙揩閫熸帓搴忓憿錛夛紝鍘熷洜鍦ㄤ簬蹇熸帓搴忕殑浠g爜姣斿叾瀹冨悓澶嶆潅搴︾殑綆楁硶鏇寸畝媧侊紝甯告暟鏃墮棿鏇村皬銆?br><br>    蹇熸帓 搴忎篃鏈変竴涓湁瓚g殑鍓駭鍝侊細(xì)蹇熼夋嫨緇欏嚭鐨勪竴浜涙暟涓k灝忕殑鏁般備竴縐嶇畝鍗曠殑鏂規(guī)硶鏄嬌鐢ㄤ笂榪頒換涓縐峅(nlogn)鐨勭畻娉曞榪欎簺鏁拌繘琛屾帓搴忓茍榪斿洖鎺掑簭鍚庢暟緇勭殑 絎琸涓厓绱犮傚揩閫熼夋嫨(Quick Select)綆楁硶鍙互鍦ㄥ鉤鍧嘜(n)鐨勬椂闂村畬鎴愯繖涓鎿嶄綔銆傚畠鐨勬渶鍧忔儏鍐靛悓蹇熸帓搴忎竴鏍鳳紝涔熸槸O(n^2)銆傚湪姣忎竴嬈″垎鍓插悗錛屾垜浠兘鍙互鐭ラ亾姣斿叧閿瓧灝忕殑 鏁版湁澶氬皯涓紝浠庤岀‘瀹氫簡鍏抽敭瀛楀湪鎵鏈夋暟涓槸絎嚑灝忕殑銆傛垜浠亣璁懼叧閿瓧鏄m灝忋傚鏋渒=m錛岄偅涔堟垜浠氨鎵懼埌浜嗙瓟妗堚斺旂k灝忓厓绱犲嵆璇ュ叧閿瓧銆傚惁鍒欙紝鎴戜滑閫? 褰掑湴璁$畻宸﹁竟鎴栬呭彸杈癸細(xì)褰搆<m鏃訛紝鎴戜滑閫掑綊鍦板鎵懼乏杈圭殑鍏冪礌涓k灝忕殑錛涘綋k>m鏃訛紝鎴戜滑閫掑綊鍦板鎵懼彸杈圭殑鍏冪礌涓k-m灝忕殑鏁般傜敱浜庢垜浠? 涓嶈冭檻鎵鏈夌殑鏁扮殑欏哄簭錛屽彧闇瑕侀掑綊鍏朵腑鐨勪竴杈癸紝鍥犳澶嶆潅搴﹀ぇ澶ч檷浣庛傚鏉傚害騫沖潎綰挎э紝鎴戜滑涓嶅啀鍏蜂綋璇佷簡銆?br>    榪樻湁涓縐嶇畻娉曞彲浠ュ湪鏈鍧廜(n) 鐨勬椂闂撮噷鎵懼嚭絎琸灝忓厓绱犮傞偅鏄垜瑙佽繃鐨勬墍鏈夌畻娉曚腑鏈娌℃湁瀹炵敤浠峰肩殑綆楁硶銆傞偅涓狾(n)鍙湁鐞嗚浠峰箋?br><br>============================ 鍗庝附鐨勫垎鍓茬嚎============================<br><br>    鎴戜滑鍓嶉潰璇佹槑榪囷紝浠呬粎渚濋潬浜ゆ崲鐩擱偦鍏冪礌鐨勬搷浣滐紝澶嶆潅搴﹀彧 鑳借揪鍒癘(n^2)銆備簬鏄紝浜轟滑灝濊瘯浜ゆ崲璺濈鏇磋繙鐨勫厓绱犮傚綋浜轟滑鍙戠幇O(nlogn)鐨勬帓搴忕畻娉曚技涔庡凡緇忔槸鏋侀檺鐨勬椂鍊欙紝鍙堟槸浠涔堝埗綰︿簡澶嶆潅搴︾殑涓嬬晫鍛紵鎴? 浠皢瑕佽璁虹殑鏄洿搴曞眰鐨勪笢瑗褲傛垜浠粛鐒跺亣璁炬墍鏈夌殑鏁伴兘涓嶇浉絳夈?br>    鎴戜滑鎬繪槸涓嶆柇鍦ㄦ暟涓庢暟涔嬮棿榪涜姣旇緝銆備綘鍙互璇曡瘯錛屽彧鐢?嬈℃瘮杈冪粷瀵逛笉鍙兘緇? 4涓暟鎺掑嚭欏哄簭銆傛瘡澶氳繘琛屼竴嬈℃瘮杈冩垜浠氨鍙堝鐭ラ亾浜嗕竴涓ぇ灝忓叧緋伙紝浠?嬈℃瘮杈冧腑涓鍏卞彲浠ヨ幏鐭?涓ぇ灝忓叧緋匯?涓ぇ灝忓叧緋誨叡鏈?^4=16縐嶇粍鍚堟柟寮忥紝鑰? 涓暟鐨勯『搴忎竴鍏辨湁4!=24縐嶃備篃灝辨槸璇達(dá)紝4嬈℃瘮杈冨彲鑳藉嚭鐜扮殑緇撴灉鏁扮洰涓嶈凍浠ュ尯鍒?4縐嶅彲鑳界殑欏哄簭銆傛洿涓鑸湴錛岀粰浣爊涓暟鍙綘鎺掑簭錛屽彲鑳界殑絳旀鍏辨湁n! 涓紝k嬈℃瘮杈冨彧鑳藉尯鍒?^k縐嶅彲鑳斤紝浜庢槸鍙湁2^k>=n!鏃舵墠鏈夊彲鑳芥帓鍑洪『搴忋傜瓑鍙蜂袱杈瑰彇瀵規(guī)暟錛屼簬鏄紝緇檔涓暟鎺掑簭鑷沖皯闇瑕乴og2(n!)嬈°? 娉ㄦ剰錛屾垜浠茍娌℃湁璇存槑涓瀹氳兘閫氳繃log2(n!)嬈℃瘮杈冩帓鍑洪『搴忋傝櫧鐒?^5=32瓚呰繃浜?!錛屼絾榪欎笉瓚充互璇存槑5嬈℃瘮杈冧竴瀹氳凍澶熴傚浣曠敤5嬈℃瘮杈冪‘瀹?涓? 鏁扮殑澶у皬鍏崇郴榪橀渶瑕佽繘涓姝ョ爺絀躲傜涓嬈′緥澶栧彂鐢熷湪n=12鐨勬椂鍊欙紝铏界劧2^29>12!錛屼絾鐜板凡璇佹槑緇?2涓暟鎺掑簭鏈灝戦渶瑕?0嬈℃瘮杈冦傛垜浠彲浠ヨ瘉 鏄巐og(n!)鐨勫闀塊熷害涓巒logn鐩稿悓錛屽嵆log(n!)=Θ(nlogn)銆傝繖鏄帓搴忔墍闇瑕佺殑鏈灝戠殑姣旇緝嬈℃暟錛屽畠緇欏嚭浜嗘帓搴忓鏉傚害鐨勪竴涓笅鐣屻? log(n!)=Θ(nlogn)鐨勮瘉鏄庝篃闄勫湪鏈枃鏈鍚庛?br>    <a target="_blank"><strong> <font color="#618898">榪欑瘒鏃ュ織</font></strong> </a>鐨勭 涓夐涓瘉鏄巐og2(N)鏄渶浼樻椂鐢ㄥ埌浜嗗嚑涔庣浉鍚岀殑鏂規(guī)硶銆傞偅縐?#8220;鐢ㄥぉ騫崇О鍑洪噸閲忎笉鍚岀殑閭d釜鐞冭嚦灝戣縐板嚑嬈?#8221;涓綾婚鐩篃鍙互鐢ㄨ繖縐嶆柟娉曟潵瑙e喅銆備簨瀹炰笂錛岃繖閲? 鏈変竴鏁村鐨勭悊璁猴紝瀹冨彨鍋氫俊鎭銆備俊鎭鏄敱棣欏啘(Shannon)鎻愬嚭鐨勩備粬鐢ㄥ鏁版潵琛ㄧず淇℃伅閲忥紝鐢ㄧ喌鏉ヨ〃紺哄彲鑳界殑鎯呭喌鐨勯殢鏈烘э紝閫氳繃榪愮畻鍙互鐭ラ亾浣犵洰鍓? 寰楀埌鐨勪俊鎭兘澶熸庢牱褰卞搷鏈緇堢粨鏋滅殑紜畾銆傚鏋滄垜浠殑淇℃伅閲忔槸浠?涓哄簳鐨勶紝閭d俊鎭灝卞彉鎴愪俊鎭浜嗐備粠鏍規(guī)湰涓婅錛岃綆楁満鐨勪竴鍒囦俊鎭氨鏄互2涓哄簳鐨勪俊鎭噺 (bits=<u>bi</u>nary digi<u>ts</u>)錛屽洜姝ゆ垜浠父璇撮鍐滄槸鏁板瓧閫氫俊涔嬬埗銆備俊鎭鍜岀儹鍔涘鍏崇郴瀵嗗垏錛屾瘮濡傜喌鐨勬蹇墊槸鐩存帴 浠庣儹鍔涘鐨勭喌瀹氫箟寮曠敵榪囨潵鐨勩傚拰榪欎釜鏈夊叧鐨勪笢瑗垮凡緇忎弗閲嶅亸棰樹簡錛岃繖閲屼笉璇翠簡錛屾湁鍏磋叮鍙互鍘葷湅銆婁俊鎭涓庣紪鐮佺悊璁恒嬨傛垜瀵硅繖涓篃寰堟湁鍏磋叮錛屽崐鎳備笉鎳傜殑錛屽緢鎯? 浜嗚В鏇村鐨勪笢瑗匡紝鏈夊叴瓚g殑鍚屽織涓嶅Θ鍔犲叆璁ㄨ銆傜墿鐞嗗鐪熺殑寰堢濂囷紝鍒╃敤鐗╃悊瀛﹀彲浠ヨВ鍐沖緢澶氱函鏁板闂錛屾垜鏈夋椂闂寸殑璇濆彲浠ヤ婦涓浜涗緥瀛愩傛垜浠栧鐨勪負(fù)鍟ヨ閫夋枃縐? 鍛€?br>    鍚庨潰灝嗕粙緇嶇殑涓夌鎺掑簭鏄嚎鎬ф椂闂村鏉傚害錛屽洜涓猴紝瀹冧滑鎺掑簭鏃舵牴鏈笉鏄氳繃浜掔浉姣旇緝鏉ョ‘瀹氬ぇ灝忓叧緋葷殑銆?br><br><br>闄? 1錛?#931;(1/n)=Θ(log n)鐨勮瘉鏄?br>    棣栧厛鎴戜滑璇佹槑錛?#931;(1/n)=O(log n)銆傚湪寮忓瓙1+1/2+1/3+1/4+1/5+…涓紝鎴戜滑鎶?/3鍙樻垚1/2錛屼嬌寰椾袱涓?/2鍔犺搗鏉ュ噾鎴愪竴涓?錛涘啀鎶?/5,1/6鍜?/7鍏ㄩ儴鍙樻垚 1/4錛岃繖鏍峰洓涓?/4鍔犺搗鏉ュ張鏄竴涓?銆傛垜浠妸鎵鏈?/2^k鐨勫悗闈?^k-1欏瑰叏閮ㄦ墿澶т負(fù)1/2^k錛屼嬌寰楄繖2^k涓垎寮忓姞璧鋒潵鏄竴涓?銆傜幇 鍦紝1+1/2+…+1/n閲岄潰浜х敓浜嗗嚑涓?鍛紵鎴戜滑鍙渶瑕佺湅灝忎簬n鐨勬暟鏈夊灝戜釜2鐨勫箓鍗沖彲銆傛樉鐒?dòng)灱尵l忚繃鏁扮殑鎵╁ぇ鍚庡師寮忓悇欏規(guī)誨拰涓簂og n銆侽(logn)鏄?#931;(1/n)鐨勫鏉傚害涓婄晫銆?br>    鐒跺悗鎴戜滑璇佹槑錛?#931;(1/n)=Ω(log n)銆傚湪寮忓瓙1+1/2+1/3+1/4+1/5+…涓紝鎴戜滑鎶?/3鍙樻垚1/4錛屼嬌寰椾袱涓?/4鍔犺搗鏉ュ噾鎴愪竴涓?/2錛涘啀鎶?/5,1/6鍜?/7鍏ㄩ儴 鍙樻垚1/8錛岃繖鏍峰洓涓?/8鍔犺搗鏉ュ張鏄竴涓?/2銆傛垜浠妸鎵鏈?/2^k鐨勫墠闈?^k-1欏瑰叏閮ㄧ緝?yōu)畯湄?fù)1/2^k錛屼嬌寰楄繖2^k涓垎寮忓姞璧鋒潵鏄竴涓? /2銆傜幇鍦紝1+1/2+…+1/n閲岄潰浜х敓浜嗗嚑涓?/2鍛紵鎴戜滑鍙渶瑕佺湅灝忎簬n鐨勬暟鏈夊灝戜釜2鐨勫箓鍗沖彲銆傛樉鐒?dòng)灱尵l忚繃鏁扮殑緙╁皬鍚庡師寮忓悇欏規(guī)誨拰涓? /2*logn銆?#937;(logn)鏄?#931;(1/n)鐨勫鏉傚害涓嬬晫銆?br><br><br>闄?錛歭og(n!)=Θ(nlogn)鐨勮瘉鏄?br>    棣? 鍏堟垜浠瘉鏄庯紝log(n!)=O(nlogn)銆傛樉鐒秐!<n^n錛屼袱杈瑰彇瀵規(guī)暟鎴戜滑寰楀埌l(fā)og(n!)<log(n^n)錛岃? log(n^n)灝辯瓑浜巒logn銆傚洜姝わ紝O(nlogn)鏄痩og(n!)鐨勫鏉傚害涓婄晫銆?br>    鐒跺悗鎴戜滑璇? 鏄庯紝log(n!)=Ω(nlogn)銆俷!=n(n-1)(n-2)(n-3)….1錛屾妸鍓嶉潰涓鍗婄殑鍥犲瓙鍏ㄩ儴緙╁皬鍒皀/2錛屽悗闈竴鍗婂洜瀛愬叏閮ㄨ垗鍘伙紝鏄劇劧 鏈塶!>(n/2)^(n/2)銆備袱杈瑰彇瀵規(guī)暟錛宭og(n!)>(n/2)log(n/2)錛屽悗鑰呭嵆Ω(nlogn)銆傚洜 姝わ紝Ω(nlogn)鏄痩og(n!)鐨勫鏉傚害涓嬬晫銆?br><br>浠婂ぉ鍐欏埌榪欓噷浜嗭紝澶у甯繖鏍″鍝?br>Matrix67鍘熷垱<br>杞創(chuàng)璇鋒敞鏄庡嚭 澶?br><a title="Permanent link to 浠庨浂寮濮嬪綆楁硶錛氬崄縐嶆帓搴忕畻娉曚粙緇嶏紙涓婏級" rel="bookmark"><u><font color="#800080">浠庨浂寮濮嬪綆楁硶錛氬崄縐嶆帓搴忕畻娉曚粙緇嶏紙涓嬶級</font></u></a><br>閭d箞錛屾湁浠涔堟柟娉曞彲浠ヤ笉鐢ㄦ瘮杈冨氨鑳芥帓 鍑洪『搴忓憿錛熷熷姪Hash琛ㄧ殑鎬濇兂錛屽鏁頒漢閮借兘鎯沖嚭榪欐牱涓縐嶆帓搴忕畻娉曟潵銆?br>    鎴戜滑鍋囪緇欏嚭鐨勬暟瀛楅兘鍦ㄤ竴瀹氳寖鍥翠腑錛岄偅涔堟垜浠氨鍙互寮涓涓寖鍥寸浉鍚? 鐨勬暟緇勶紝璁板綍榪欎釜鏁板瓧鏄惁鍑虹幇榪囥傜敱浜庢暟瀛楁湁鍙兘鏈夐噸澶嶏紝鍥犳Hash琛ㄧ殑姒傚康闇瑕佹墿灞曪紝鎴戜滑闇瑕佹妸鏁扮粍綾誨瀷鏀規(guī)垚鏁村瀷錛岀敤鏉ヨ〃紺烘瘡涓暟鍑虹幇鐨勬鏁般?br>    鐪? 榪欐牱涓涓緥瀛愶紝鍋囧鎴戜滑瑕佸鏁板垪3 1 4 1 5 9 2 6 5 3 5 9榪涜鎺掑簭銆傜敱浜庣粰瀹氭暟瀛楁瘡涓涓兘灝忎簬10錛屽洜姝ゆ垜浠紑涓涓?鍒?鐨勬暣鍨嬫暟緇凾[i]錛岃褰曟瘡涓涓暟鍑虹幇浜嗗嚑嬈°傝鍒頒竴涓暟瀛梮錛屽氨鎶婂搴旂殑T[x]鍔? 涓銆?br><br>  A[]= 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9<br>               +---+---+---+---+---+---+---+---+---+---+<br>      鏁? 瀛?i錛?| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |<br>               +---+---+---+---+---+---+---+---+---+---+<br>鍑虹幇嬈℃暟T[i]錛?| 0 | 2 | 1 | 2 | 1 | 3 | 1 | 0 | 0 | 2 |<br>               +---+---+---+---+---+---+---+---+---+---+<br><br>    鏈鍚庯紝鎴戜滑鐢ㄤ竴涓寚閽堜粠鍓? 寰鍚庢壂鎻忎竴閬嶏紝鎸夌収嬈″簭杈撳嚭0鍒?錛屾瘡涓暟鍑虹幇浜嗗嚑嬈″氨杈撳嚭鍑犱釜銆傚亣濡傜粰瀹氱殑鏁版槸n涓ぇ灝忎笉瓚呰繃m鐨勮嚜鐒舵暟錛屾樉鐒惰繖涓畻娉曠殑澶嶆潅搴︽槸O(m+n)鐨勩?br><br>    鎴? 鏇劇粡浠ヤ負(fù)錛岃繖灝辨槸綰挎ф椂闂存帓搴忎簡銆傚悗鏉ユ垜鍙戠幇鎴戦敊浜嗐傚啀鍚庢潵錛屾垜鍙戠幇鎴戞浘鐘殑閿欒鏄竴涓櫘閬嶇殑閿欒銆傚緢澶氫漢閮戒互涓轟笂闈㈢殑榪欎釜綆楁硶灝辨槸浼犺涓殑璁℃暟鎺掑簭銆傞棶 棰樺嚭鍦ㄥ摢閲屼簡錛熶負(fù)浠涔堝畠涓嶆槸綰挎ф椂闂寸殑鎺掑簭綆楁硶錛熷師鍥犳槸錛岃繖涓畻娉曟牴鏈笉鏄帓搴忕畻娉曪紝瀹冩牴鏈病鏈夊鍘熸暟鎹繘琛屾帓搴忋?br><br><br><strong> 闂? 棰樹竴錛氫負(fù)浠涔堣涓婅堪綆楁硶娌℃湁瀵規(guī)暟鎹繘琛屾帓搴忥紵</strong> <br>STOP! You should think for a while.<br><br>    鎴戜滑鐝湁寰堝MM銆傚拰韜珮鐩稿樊澶繙鐨凪M鍦ㄤ竴璧瘋偗瀹氬緢鍒壄錛? 鎺ヤ釜鍚婚兘瑕佸集鑵版墠琛岋紙<a target="_blank"><strong> <font color="#618898">灝忕尗</font></strong> </a>鐭浜嗭級銆備負(fù)姝わ紝鎴戝笇鏈涚粰鎴戜滑鐝殑MM鐨勮韓楂樻帓搴忋傛垜浠彮MM鐨勮韓楂橈紝 鍐嶇璋變篃娌℃湁瓚呰繃2綾崇殑錛岃繖寰堥傚悎鐢ㄦ垜浠垰鎵嶇殑綆楁硶銆傛垜浠湪榛戞澘涓婄敾涓涓?00鍒?00鐨勬暟緇勶紝MM渚濇鑷洕韜珮錛屾垜璐熻矗鐢?#8220;姝?#8221;瀛楃粺璁′漢鏁般傜粺璁″嚭鏉? 浜嗭紝浠庡皬鍒板ぇ渚濇涓?41, 143, 143, 147, 152, 153, …銆傝繖綆楀摢闂ㄥ瓙鎺掑簭錛熷氨涓鎺掓暟瀛楀鎴戞湁浠涔堢敤錛屾垜瑕佺煡閬撶殑鏄摢涓狹M鏈夊楂樸傛垜浠粎浠呮妸鍏冪礌鐨勫睘鎬у間粠灝忓埌澶у垪浜嗗嚭鏉ワ紝浣嗘垜浠病鏈夊鍏冪礌鏈韓榪涜鎺掑簭銆備篃 灝辨槸璇達(dá)紝鎴戜滑闇瑕佺煡閬撹緭鍑虹粨鏋滅殑姣忎釜鏁板煎搴斿師鏁版嵁鐨勫摢涓涓厓绱犮備笅鏂囨彁鍒扮殑“鎺掑簭綆楁硶鐨勭ǔ瀹氭?#8221;涔熷拰灞炴у間笌瀹為檯鍏冪礌鐨勫尯鍒湁鍏熾?br><br><br><strong> 闂? 棰樹簩錛氭庢牱灝嗙嚎鎬ф椂闂存帓搴忓悗鐨勮緭鍑虹粨鏋滆繕鍘熶負(fù)鍘熸暟鎹腑鐨勫厓绱狅紵</strong> <br>STOP! You should think for a while.<br><br>    鍚屾牱鍊熷姪Hash琛ㄧ殑鎬濇兂錛屾垜浠珛鍗蟲兂鍒頒簡綾諱技浜? 寮鏁e垪鐨勬柟娉曘傛垜浠敤閾捐〃鎶婂睘鎬у肩浉鍚岀殑鍏冪礌涓茶搗鏉ワ紝鎸傚湪瀵瑰簲鐨凾[i]涓娿傛瘡嬈¤鍒頒竴涓暟錛屽湪澧炲姞T[i]鐨勫悓鏃舵垜浠妸榪欎釜鍏冪礌鏀捐繘T[i]寤朵幾鍑哄幓鐨? 閾捐〃閲屻傝繖鏍鳳紝杈撳嚭緇撴灉鏃舵垜浠彲浠ユ柟渚垮湴鑾峰緱鍘熸暟鎹腑鐨勬墍鏈夊睘鎬у間負(fù)i鐨勫厓绱犮?br><br>  A[]= 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9<br>               +---+---+---+---+---+---+---+---+---+---+<br>      鏁板瓧 i錛?| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |<br>               +---+---+---+---+---+---+---+---+---+---+<br>鍑虹幇嬈℃暟T[i]錛?| 0 | 2 | 1 | 2 | 1 | 3 | 1 | 0 | 0 | 2 |<br>               +---+o--+-o-+-o-+-o-+-o-+--o+---+---+-o-+<br>                    |    |   |   |   |    |          |<br>                 +--+  +-+   |   |   +-+  +---+      |<br>                 |     |   A[1]  |     |      |     A[6]<br>               A[2]  A[7]    |  A[3]  A[5]   A[8]    |<br>                 |           |         |            A[12]<br>               A[4]        A[10]      A[9]<br>                                       |<br>                                      A[11]<br><br>    褰? 璞″湴璇達(dá)紝鎴戜滑鍦ㄥ湴涓婃憜10涓《錛屾瘡涓《緙栦竴涓彿錛岀劧鍚庢妸鏁版嵁鍒嗛棬鍒被鏀懼湪鑷繁鎵灞炵殑妗墮噷銆傝繖縐嶆帓搴忕畻娉曞彨鍋氭《寮忔帓搴?Bucket Sort)銆傛湰鏂囨渶鍚庝綘灝嗙湅鍒版《寮忔帓搴忕殑鍙︿竴涓敤閫斻?br>    閾捐〃鍐欒搗鏉ユ瘮杈冮夯鐑?chǔ)锛屼竴鑸垜浠笉浣跨敤瀹冦傛垜浠湁鏇寸畝鍗曠殑鏂規(guī)硶銆?br><br><br><strong> 闂? 棰樹笁錛氬悓鏍鋒槸杈撳嚭鍏冪礌鏈韓錛屼綘鑳芥兂鍑轟笉鐢ㄩ摼琛ㄧ殑鍏跺畠綆楁硶涔堬紵</strong> <br>STOP! You should think for a while.<br><br>  A[]= 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9<br>               +---+---+---+---+---+---+---+---+---+---+<br>      鏁板瓧 i錛?| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |<br>               +---+---+---+---+---+---+---+---+---+---+<br>鍑虹幇嬈℃暟T[i]錛?| 0 | 2 | 1 | 2 | 1 | 3 | 1 | 0 | 0 | 2 |<br>               +---+---+---+---+---+---+---+---+---+---+<br>淇敼鍚庣殑T[i]錛?| 0 | 2 | 3 | 5 | 6 | 9 | 10| 10| 10| 12|<br>               +---+---+---+---+---+---+---+---+---+---+<br><br>    鎵鏈夋暟閮借鍏ュ悗錛屾垜浠慨鏀? T[i]鏁扮粍鐨勫鹼紝浣垮緱T[i]琛ㄧず鏁板瓧i鍙兘鐨勬帓鍚嶇殑鏈澶у箋傛瘮濡傦紝1鏈宸帓鍚嶇浜岋紝3鏈榪滃彲浠ユ帓鍒扮浜斻俆鏁扮粍鐨勬渶鍚庝竴涓暟搴旇絳変簬杈撳叆鏁版嵁鐨勬暟瀛椾釜 鏁般備慨鏀筎鏁扮粍鐨勬搷浣滃彲浠ョ敤涓嬈$嚎鎬х殑鎵弿绱姞瀹屾垚銆?br>    鎴戜滑榪橀渶瑕佸噯澶囦竴涓緭鍑烘暟緇勩傜劧鍚庯紝鎴戜滑浠庡悗寰鍓嶆壂鎻廇鏁扮粍錛屼緷鐓鏁扮粍鐨勬寚紺轟緷嬈? 鎶婂師鏁版嵁鐨勫厓绱犵洿鎺ユ斁鍒拌緭鍑烘暟緇勪腑錛屽悓鏃禩[i]鐨勫煎噺涓銆備箣鎵浠ヤ粠鍚庡線鍓嶆壂鎻廇鏁扮粍錛屾槸鍥犱負(fù)榪欐牱杈撳嚭緇撴灉鎵嶆槸紼沖畾鐨勩傛垜浠涓涓帓搴忕畻娉曟槸紼沖畾鐨? (Stable)錛屽綋綆楁硶婊¤凍榪欐牱鐨勬ц川錛氬睘鎬у肩浉鍚岀殑鍏冪礌錛屾帓搴忓悗鍓嶅悗浣嶇疆涓嶅彉錛屾湰鏉ュ湪鍓嶉潰鐨勭幇鍦ㄤ粛鐒跺湪鍓嶉潰銆備笉瑕佽寰楁帓搴忕畻娉曟槸鍚﹀叿鏈夌ǔ瀹氭т技涔庡叧緋? 涓嶅ぇ錛屾帓搴忕殑紼沖畾鎬у湪涓嬫枃鐨勬煇涓棶棰樹腑灝嗗彉寰楅潪甯擱噸瑕併備綘鍙互鍊掑洖鍘葷湅鐪嬪墠闈㈣鐨勪竷縐嶆帓搴忕畻娉曞摢浜涙槸紼沖畾鐨勩?br>    渚嬪瓙涓紝A鏁扮粍鏈鍚庝竴涓暟9 鎵瀵瑰簲鐨凾[9]=12錛屾垜浠洿鎺ユ妸9鏀懼湪寰呰緭鍑哄簭鍒椾腑鐨勭12涓綅緗紝鐒跺悗T[9]鍙樻垚11錛堣繖鏍蜂笅涓嬈″啀鍑虹幇9鏃跺氨搴旇鏀懼湪絎?1浣嶏級銆?br><br>A[]= 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9 <--<br>T[i]= 0, 2, 3, 5, 6, 9, 10, 10, 10, 11<br>Ans = _ _ _ _ _ _ _ _ _ _ _ 9<br><br>    鎺ヤ笅鏉ョ殑鍑犳濡備笅錛?br><br>A[]= 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5 <--<br>T[i]= 0, 2, 3, 5, 6, 8, 10, 10, 10, 11<br>Ans = _ _ _ _ _ _ _ _ 5 _ _ 9<br><br>A[]= 3, 1, 4, 1, 5, 9, 2, 6, 5, 3 <--<br>T[i]= 0, 2, 3, 4, 6, 8, 10, 10, 10, 11<br>Ans = _ _ _ _ 3 _ _ _ 5 _ _ 9<br><br>A[]= 3, 1, 4, 1, 5, 9, 2, 6, 5 <--<br>T[i]= 0, 2, 3, 4, 6, 7, 10, 10, 10, 11<br>Ans = _ _ _ _ 3 _ _ 5 5 _ _ 9<br><br>    榪欑綆楁硶鍙? 鍋氳鏁版帓搴?Counting Sort)銆傛紜у拰澶嶆潅搴﹂兘鏄樉鐒剁殑銆?br><br><br><strong> 闂鍥涳細(xì)緇欏畾鏁扮殑鏁版嵁鑼冨洿澶т簡璇ユ庝箞 鍔烇紵</strong> <br>STOP! You should think for a while.<br><br>    鍓嶉潰鐨勭畻娉曞彧鏈夊湪鏁版嵁鐨勮寖鍥翠笉澶ф椂鎵嶅彲琛岋紝濡傛灉緇欏畾鐨勬暟鍦ㄩ暱鏁磋寖鍥村唴鐨勮瘽錛岃繖涓畻娉曟槸涓嶅彲琛岀殑錛屽洜涓? 浣犲紑涓嶄笅榪欎箞澶х殑鏁扮粍銆俁adix鎺掑簭(Radix Sort)瑙e喅浜嗚繖涓毦棰樸?br>    鏄ㄥぉ鎴戞病浜嬬炕浜嗕竴涓嬪垵涓紙9鐝級鏃剁殑鍚屽褰曪紝鍥炲繂浜嗕竴涓? 榪囧幓銆傛垜鎶婃瘮杈冩劅鍏磋叮鐨凪M鐨勭敓鏃ュ垪鍦ㄤ笅闈紙緇濆鐪熷疄錛夈傚鏋滃垪琛ㄤ腑鐨勫摢涓狹M鏈夊垢鐪嬪埌浜嗚繖綃囨棩蹇楋紙鍑犱箮涓嶅彲鑳斤級錛屽乏杈圭殑Support鏍忔湁鎴戠殑鐢?shù)瀛愯仈绯? 鏂瑰紡錛屾垜鎯崇煡閬撲綘浠庝箞鏍蜂簡銆傛帓鍚嶄笉鍒嗗厛鍚庛?br> </strong> <ul> <li><strong style="color: #0000ff;">19880818<br> </strong></li> <li><strong style="color: #0000ff;">19880816<br> </strong></li> <li><strong style="color: #0000ff;">19890426<br> </strong></li> <li><strong style="color: #0000ff;">19880405<br> </strong></li> <li><strong style="color: #0000ff;">19890125<br> </strong></li> <li><strong style="color: #0000ff;">19881004<br> </strong></li> <li><strong style="color: #0000ff;">19881209<br> </strong></li> <li><strong style="color: #0000ff;">19890126<br> </strong></li> <li><strong style="color: #0000ff;">19890228 </strong></li> </ul> <p><strong style="color: #0000ff;"><br>    榪欏氨鏄垜鐨勬暟鎹簡銆傜幇鍦紝鎴戣緇欒繖浜涙暟鎺掑簭銆傚亣濡傛垜鐨勭數(shù)鑴戝彧鑳藉紑鍑?..99鐨勬暟緇勶紝閭h鏁版帓搴忕畻娉曟渶澶氬涓や綅鏁拌繘琛屾帓搴忋傛垜灝辨妸 姣忎釜鍏綅鏁頒袱浣嶄袱浣嶅湴鍒嗘垚鍥涙錛堝浘1錛夛紝鍒嗗埆榪涜鍥涙璁℃暟鎺掑簭銆傚湴鐞冧漢閮界煡閬撴湀浠界浉鍚屾椂搴旇鐪嬪摢涓鏃ワ紝鍥犳鎴戜滑鐪嬫湀浠界殑澶у皬鏃跺簲璇ヤ簨鍏堜繚璇佹棩宸茬粡鏈夊簭銆傛崲 鍙ヨ瘽璇達(dá)紝鎴戜滑鍏堝“鏈涓嶉噸瑕?#8221;鐨勯儴鍒嗚繘琛屾帓搴忋傛垜浠厛瀵規(guī)墍鏈夋暟鐨勬渶鍚庝袱浣嶈繘琛屼竴嬈¤鏁版帓搴忥紙鍥?錛夈傛敞鎰忚瀵?鏈?6鍙風(fēng)殑MM鍜?鏈?6鍙風(fēng)殑MM錛屾湰嬈℃帓 搴忎腑瀹冧滑鐨勫睘鎬у肩浉鍚岋紝鐢變簬璁℃暟鎺掑簭鏄ǔ瀹氱殑錛屽洜姝?鏈堜喚閭d釜鎺掑畬鍚庝緷鐒跺湪1鏈堜喚閭d釜鐨勫墠澶淬傛帴涓嬫潵鎴戜滑瀵圭櫨浣嶅拰鍗冧綅榪涜鎺掑簭錛堝浘3錛夈備綘鍙互鐪嬪埌涓や釜 26鏃ョ殑MM鍦ㄨ繖涓嬈℃帓搴忎腑鍒嗗嚭浜嗗ぇ灝忥紝鑰屾湀浠界浉鍚岀殑MM渚濈劧淇濇寔鏃ユ暟鏈夊簭錛堝洜涓鴻鏁版帓搴忔槸紼沖畾鐨勶級銆傛渶鍚庢垜浠騫翠喚鎺掑簭錛堝浘4錛夛紝瀹屾垚鏁翠釜綆楁硶銆傚ぇ瀹墮兘 鏄法涓栫邯鐨勫ソ鍎跨錛屽洜姝ゆ病鏈夊浘5浜嗐?br><br>       <img alt="" src="http://www.matrix67.com/blogimage/200704131.gif" border="0"><br><br>    榪? 縐嶇畻娉曟樉鐒舵槸姝g‘鐨勩傚畠鐨勫鏉傚害涓鑸啓鎴怬(d*(n+m))錛屽叾涓璶琛ㄧずn涓暟錛宮鏄垜寮鐨勬暟緇勫ぇ灝忥紙鏈緥涓璵=100錛夛紝d鏄竴涓父鏁板洜瀛愶紙鏈緥涓? d=4錛夈傛垜浠涓哄畠涔熸槸綰挎х殑銆?br><br><br><strong> 闂浜旓細(xì)榪欐牱鐨勬帓搴忔柟娉曡繕鏈変粈涔堣嚧鍛界殑緙洪櫡錛?/strong> <br>STOP! You should think for a while.<br><br>    鍗? 浣挎暟鎹湁30浣嶏紝鎴戜滑涔熷彲浠ョ敤d=5鎴?鐨凴adix綆楁硶榪涜鎺掑簭銆備絾錛岃鏄粰瀹氱殑鏁版嵁鏈夋棤絀峰浣嶆庝箞鍔烇紵鏈変漢璇達(dá)紝榪欏彲鑳戒箞銆傝繖鏄彲鑳界殑錛屾瘮濡傜粰瀹氱殑鏁版嵁 鏄皬鏁幫紙鏇村噯紜湴璇達(dá)紝瀹炴暟錛夈傚熀浜庢瘮杈冪殑鎺掑簭鍙互鍖哄垎355/113鍜?#960;鍝? 涓ぇ錛屼絾浣犱笉鐭ラ亾Radix鎺掑簭闇瑕佺簿紜埌鍝竴浣嶃傝繖涓嬫儴浜嗭紝瀹炴暟鐨勫嚭鐜版妸璨屼技楂樼鎶鐨勭嚎鎬ф椂闂存帓搴忔墦鍥炰簡鍐滀笟鏃朵唬銆傝繖鏃訛紝妗舵帓搴忓啀搴﹀嚭灞憋紝鎸芥晳浜嗙嚎鎬ф椂 闂存帓搴忔?zhèn)叉儴鐨勫懡杩愩?br><br><br><strong> 闂鍏細(xì)濡備綍瀵瑰疄鏁拌繘琛岀嚎鎬ф椂闂存帓搴忥紵</strong> <br>STOP! You should think for a while.<br><br>    鎴? 浠妸闂綆鍖栦竴涓嬶紝緇欏嚭鐨勬墍鏈夋暟閮芥槸0鍒?涔嬮棿鐨勫皬鏁般傚鏋滀笉鏄紝涔熷彲浠ユ妸鎵鏈夋暟鍚屾椂闄や互涓涓ぇ鏁存暟浠庤岃漿鍖栦負(fù)榪欑褰㈠紡銆傛垜浠緷鐒惰绔嬭嫢騫蹭釜妗訛紝姣斿錛屼互 灝忔暟鐐瑰悗闈竴浣嶆暟涓轟緷鎹鎵鏈夋暟榪涜鍒掑垎銆傛垜浠粛鐒剁敤閾捐〃鎶婂悓涓綾葷殑鏁頒覆鍦ㄤ竴璧鳳紝涓嶅悓鐨勬槸錛屾瘡涓涓摼琛ㄩ兘鏄湁搴忕殑銆備篃灝辨槸璇達(dá)紝姣忎竴嬈¤鍒頒竴涓柊鐨勬暟閮借榪? 琛屼竴嬈℃彃鍏ユ帓搴忋傜湅鎴戜滑鐨勪緥瀛愶細(xì)<br><br>      A[]= 0.12345, 0.111, 0.618, 0.9, 0.99999<br>               +---+---+---+---+---+---+---+---+---+---+<br>      鍗佸垎浣嶏細(xì) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |<br>               +---+-o-+---+---+---+---+-o-+---+---+-o-+<br>                     |                   |           |<br>                   A[2]=0.111          A[3]=0.618   A[4]=0.9<br>                     |                               |<br>                   A[1]=0.12345                     A[5]=0.99999<br><br>    鍋囧鍐嶄笅涓涓鍏ョ殑鏁版槸 0.122222錛岃繖涓暟闇瑕佹彃鍏ュ埌鍗佸垎浣嶄負(fù)1鐨勯偅涓摼琛ㄩ噷閫傚綋鐨勪綅緗傛垜浠渶瑕侀亶鍘嗚閾捐〃鐩村埌鎵懼埌絎竴涓瘮0.122222澶х殑鏁幫紝鍦ㄤ緥瀛愪腑鍒欏簲璇ユ彃鍏? 鍒伴摼琛ㄤ腑A[2]鍜孉[1]涔嬮棿銆傛渶鍚庯紝鎴戜滑鎸夐『搴忛亶鍘嗘墍鏈夐摼琛紝渚濇杈撳嚭姣忎釜閾捐〃涓殑姣忎釜鏁般?br>    榪欎釜綆楁硶鏄劇劧鏄紜殑錛屼絾澶嶆潅搴︽樉鐒朵笉鏄? 綰挎с備簨瀹炰笂錛岃繖縐嶇畻娉曟渶鍧忔儏鍐典笅鏄疧(n^2)鐨勶紝鍥犱負(fù)褰撴墍鏈夋暟鐨勫崄鍒嗕綅閮界浉鍚屾椂綆楁硶灝辨槸涓涓彃鍏ユ帓搴忋傚拰鍘熸潵涓鏍鳳紝鎴戜滑涓嬮潰瑕佽綆楃畻娉曠殑騫沖潎鏃墮棿澶嶆潅 搴︼紝鎴戜滑甯屾湜榪欑綆楁硶鐨勫鉤鍧囧鏉傚害鏄嚎鎬х殑銆?br>    榪欐綆楀鉤鍧囧鏉傚害鎴戜滑鐢ㄦ渶絎ㄧ殑鍔炴硶銆傛垜浠皢綆楀嚭鎵鏈夊彲鑳藉嚭鐜扮殑鎯呭喌鐨勬繪椂闂村鏉傚害錛岄櫎浠ユ葷殑 鎯呭喌鏁幫紝寰楀埌騫沖潎鐨勫鏉傚害鏄灝戙?br>    姣忎釜鏁伴兘鍙兘灞炰簬10涓《涓殑涓涓紝n涓暟鎬葷殑鎯呭喌鏈?0^n縐嶃傝繖涓兼槸鎴戜滑搴炲ぇ鐨勭畻寮忕殑鍒嗘瘝閮ㄥ垎銆? 濡傛灉涓涓《閲屾湁K涓厓绱狅紝閭d箞鍙笌榪欎釜妗舵湁鍏崇殑鎿嶄綔鏈塐(K^2)嬈★紝瀹冨氨鏄竴嬈℃彃鍏ユ帓搴忕殑鎿嶄綔嬈℃暟銆備笅闈㈣綆楋紝鍦?0^n縐嶆儏鍐典腑錛孠0=1鏈夊灝戠鎯? 鍐點(diǎn)侹0=1琛ㄧず錛宯涓暟涓彧鏈変竴涓暟鍦?鍙鋒《錛屽叾浣檔-1涓暟鐨勫崄鍒嗕綅灝卞彧鑳藉湪1鍒?涓夋嫨銆傞偅涔圞0=1鐨勬儏鍐墊湁C(n,1)*9^(n-1)錛岃屾瘡 涓狵0=1鐨勬儏鍐靛湪0鍙鋒《涓皢浜х敓1^2鐨勫鏉傚害銆傜被浼煎湴錛孠i=p鐨勬儏鍐墊暟涓篊(n,p)*9^(n-p)錛屽鏉傚害鎬昏涓篊(n,p)*9^(n- p)*p^2銆傛灇涓炬墍鏈塊鐨勪笅鏍囧拰p鍊鹼紝绱姞璧鋒潵錛岃繖涓畻寮忓ぇ瀹跺簲璇ヨ兘鍐欏嚭鏉ヤ簡錛屼絾鏄繖涓?#8230;…鎬庝箞綆楀晩銆傚埆鎬曪紝鎴戜滑鏄悶璁$畻鏈虹殑錛屾嬁鍑虹偣鍜孧O涓嶄竴鏍風(fēng)殑涓? 瑗挎潵銆備簬鏄紝Mathematica 5.0闅嗛噸鐧誨満錛屾垜鍋氭暟瀛︿綔涓氬叏闈犲畠銆傚畠?yōu)畣甯垜浠寲绠榪欎釜澶嶆潅鐨勫紡瀛愩?br><img alt="" src="http://www.matrix67.com/blogimage/200704132.gif" border="0"><br><br>    鎴? 浠仐鎲懼湴鍙戠幇錛岃櫧鐒跺父鏁板洜瀛愬緢灝忥紙鍙湁0.1錛夛紝浣嗙畻娉曠殑騫沖潎澶嶆潅搴︿粛鐒舵槸騫蟲柟鐨勩傜瓑涓涓嬶紝1/10鐨勯偅涓?0鏄垜浠《鐨勪釜鏁板悧錛熼偅涔堟垜浠負(fù)浠涔堜笉鎶婃《鐨? 涓暟寮勫ぇ鐐癸紵鎴戜滑騫茶剢鐢╩鏉ヨ〃紺烘《鐨勪釜鏁幫紝閲嶆柊璁$畻涓嬈★細(xì)<br><img alt="" src="http://www.matrix67.com/blogimage/200704133.gif" border="0"><br><br>    鍖? 綆鍑烘潵錛屾搷浣滄鏁頒負(fù)O(n+n^2/m)銆傚彂鐜頒簡涔堬紝濡傛灉m=Θ(n)鐨勮瘽錛屽鉤鍧囧鏉傚害灝卞彉鎴愪簡O(n)銆備篃灝辨槸璇達(dá)紝褰撴《鐨勪釜鏁扮瓑浜庤緭鍏ユ暟鎹殑涓暟鏃訛紝綆? 娉曟槸騫沖潎綰挎х殑銆?br>    鎴戜滑灝嗗湪Hash琛ㄥ紑鏁e垪鐨勪粙緇嶄腑閲嶆柊鎻愬埌榪欎釜緇撹銆?br><br>    涓旀參錛岃繕鏈変竴涓棶棰樸?0涓《浠ュ崄鍒嗕綅鐨? 鏁板瓧褰掔被錛岄偅涔坣涓《鐢ㄤ粈涔堟柟娉曟潵鍒嗙被鍛紵娉ㄦ剰錛屽垎綾葷殑鏂規(guī)硶闇瑕佹弧瓚籌紝涓錛屼竴涓暟鍒嗗埌姣忎釜妗墮噷鐨勬鐜囩浉鍚岋紙榪欐牱鎵嶆湁鎴戜滑涓婇潰鐨勭粨璁猴級錛涗簩錛屾墍鏈夋《閲屽綰沖厓 绱犵殑鑼冨洿蹇呴』鏄繛緇殑銆傛牴鎹繖涓や釜鏉′歡錛屾垜浠湁鍔炴硶鎶婃墍鏈夋暟鎭板ソ鍒嗕負(fù)n綾匯傛垜浠殑杈撳叆鏁版嵁涓嶆槸閮藉湪0鍒?涔嬮棿涔堬紵鍙渶瑕佺湅榪欎簺鏁頒箻浠鐨勬暣鏁伴儴鍒嗘槸澶氬皯灝? 琛屼簡錛岃鍒頒竴涓暟鍚庝箻浠鍙栨暣寰楀嚑灝辨彃鍏ュ埌鍑犲彿妗墮噷銆傝繖鏈川涓婄浉褰撲簬鎶婂尯闂碵0,1)騫沖潎鍒嗘垚n浠姐?br><br><br><strong> 闂涓冿細(xì)鏈? 娌℃湁澶嶆潅搴︿綆浜庣嚎鎬х殑鎺掑簭綆楁硶</strong> <br>STOP! You should think for a while.<br><br>    鎴戜滑浠嶰(n^2)璧板悜O(nlogn)錛屽張浠嶰(nlogn)璧板悜綰挎э紝 姣忎竴嬈℃垜浠兘璁ㄨ浜嗗鏉傚害涓嬮檺鐨勯棶棰橈紝鏍規(guī)嵁璁ㄨ鐨勭粨鏋滄彁鍑轟簡鏇翠紭鐨勭畻娉曘傝繖嬈℃葷畻涓嶈浜嗭紝涓嶅彲鑳芥湁姣旂嚎鎬ц繕蹇殑綆楁硶浜嗭紝鍥犱負(fù)鈥斺斾綘璇誨叆銆佽緭鍑烘暟鎹嚦灝戝氨闇 瑕佺嚎鎬х殑鏃墮棿銆傛帓搴忕畻娉曚箣鏃呭湪綰挎ф椂闂村鏉傚害榪欎竴绔欑粓姝簡錛屾墍鏈夊崄縐嶆帓搴忕畻娉曞埌榪欓噷浠嬬粛瀹屾瘯浜嗐?br><br><br><br>    鏂囩珷鏈夎秺鍐欒秺闀? 鐨勮秼鍔夸簡錛屾垜媯(gè)鏌ヨ搗鏉ヤ篃瓚婃潵瓚婄瘡浜嗐傛垜鍙堢湅浜嗕笁閬嶏紝搴旇娌¢棶棰樹簡銆傜兢浼楃殑鐪肩潧鏄洩浜殑錛屾伋璇峰ぇ瀹跺府鎴戞壘閿欍?br></strong></p> <strong style="color: #0000ff;"> </strong><br> <img src ="http://m.shnenglu.com/yuqilin1228/aggbug/110617.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/yuqilin1228/" target="_blank">LynnRaymond</a> 2010-03-26 21:54 <a href="http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110617.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆愯漿杞姐戜綅榪愮畻綆浠嬪強(qiáng)瀹炵敤鎶宸?/title><link>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110616.html</link><dc:creator>LynnRaymond</dc:creator><author>LynnRaymond</author><pubDate>Fri, 26 Mar 2010 13:48:00 GMT</pubDate><guid>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110616.html</guid><wfw:comment>http://m.shnenglu.com/yuqilin1228/comments/110616.html</wfw:comment><comments>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110616.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/yuqilin1228/comments/commentRss/110616.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/yuqilin1228/services/trackbacks/110616.html</trackback:ping><description><![CDATA[<a title="Permanent link to 浣嶈繍綆楃畝浠嬪強(qiáng)瀹炵敤鎶宸э紙涓錛夛細(xì)鍩虹綃? rel="bookmark">浣? 榪愮畻綆浠嬪強(qiáng)瀹炵敤鎶宸э紙涓錛夛細(xì)鍩虹綃?/a>   FROM:Matrix67澶х墰 <br>鍘誨勾騫村簳鍐欑殑鍏充簬<a target="_blank">浣嶈繍綆?/a>鐨勬棩蹇楁槸榪欎釜Blog閲屽皯鏁板ぇ鍙楁榪庣殑鏂囩珷涔嬩竴錛屽緢澶氫漢閮藉笇鏈涙垜鑳戒笉鏂畬鍠勯偅綃囨枃绔犮傚悗鏉ユ垜鐪嬪埌浜嗕笉灝戝叾 瀹冪殑璧勬枡錛屽涔?fàn)鍒颁簡鏇村鍏充簬浣崢q愮畻鐨勭煡璇嗭紝鏈変簡閲嶆柊鏁寸悊浣嶈繍綆楁妧宸х殑鎯蟲硶銆備粠浠婂ぉ璧鋒垜灝卞紑濮嬪啓榪欎竴緋誨垪浣嶈繍綆楄瑙f枃绔狅紝涓庡叾璇存槸鍘熸潵閭g瘒鏂囩珷鐨? follow-up錛屼笉濡傝鏄竴涓猺emake銆傚綋鐒墮鍏堟垜榪樻槸浠庢渶鍩虹鐨勪笢瑗胯璧楓?br><br>浠涔堟槸浣嶈繍綆楋紵<br>    紼嬪簭涓殑鎵鏈夋暟鍦ㄨ 綆楁満鍐呭瓨涓兘鏄互浜岃繘鍒剁殑褰㈠紡鍌ㄥ瓨鐨勩備綅榪愮畻璇寸┛浜嗭紝灝辨槸鐩存帴瀵規(guī)暣鏁板湪鍐呭瓨涓殑浜岃繘鍒朵綅榪涜鎿嶄綔銆傛瘮濡傦紝and榪愮畻鏈潵鏄竴涓昏緫榪愮畻絎︼紝浣嗘暣鏁頒笌鏁存暟涔? 闂翠篃鍙互榪涜and榪愮畻銆備婦涓緥瀛愶紝6鐨勪簩榪涘埗鏄?10錛?1鐨勪簩榪涘埗鏄?011錛岄偅涔? and 11鐨勭粨鏋滃氨鏄?錛屽畠鏄簩榪涘埗瀵瑰簲浣嶈繘琛岄昏緫榪愮畻鐨勭粨鏋滐紙0琛ㄧずFalse錛?琛ㄧずTrue錛岀┖浣嶉兘褰?澶勭悊錛夛細(xì)<br>     110<br>AND 1011<br>----------<br>    0010  -->  2<br>    鐢變簬浣嶈繍綆楃洿鎺ュ鍐呭瓨鏁版嵁榪涜鎿嶄綔錛屼笉闇瑕佽漿鎴? 鍗佽繘鍒訛紝鍥犳澶勭悊閫熷害闈炲父蹇傚綋鐒舵湁浜轟細(xì)璇達(dá)紝榪欎釜蹇簡鏈変粈涔堢敤錛岃綆? and 11娌℃湁浠涔堝疄闄呮剰涔夊晩銆傝繖涓緋誨垪鐨勬枃绔犲氨灝嗗憡璇変綘錛屼綅榪愮畻鍒板簳鍙互騫蹭粈涔堬紝鏈変簺浠涔堢粡鍏稿簲鐢紝浠ュ強(qiáng)濡備綍鐢ㄤ綅榪愮畻浼樺寲浣犵殑紼嬪簭銆?br><br><br>Pascal 鍜孋涓殑浣嶈繍綆楃鍙?br>    涓嬮潰鐨刟鍜宐閮芥槸鏁存暟綾誨瀷錛屽垯錛?br>C璇█  |  Pascal璇█<br>-------+-------------<br>a & b  |  a and b<br>a | b  |  a or b<br>a ^ b  |  a xor b<br>  ~a   |   not a<br>a << b |  a shl b<br>a >> b |  a shr b<br>    娉? 鎰廋涓殑閫昏緫榪愮畻鍜屼綅榪愮畻絎﹀彿鏄笉鍚岀殑銆?20|1314=1834錛屼絾520||1314=1錛屽洜涓洪昏緫榪愮畻鏃?20鍜?314閮界浉褰撲簬True銆傚悓鏍? 鐨勶紝!a鍜寏a涔熸槸鏈夊尯鍒殑銆?br><br><br>鍚勭浣嶈繍綆楃殑浣跨敤<br>    === 1. and榪愮畻 ===<br>    and榪愮畻閫? 甯哥敤浜庝簩榪涘埗鍙栦綅鎿嶄綔錛屼緥濡備竴涓暟 and 1鐨勭粨鏋滃氨鏄彇浜岃繘鍒剁殑鏈鏈綅銆傝繖鍙互鐢ㄦ潵鍒ゆ柇涓涓暣鏁扮殑濂囧伓錛屼簩榪涘埗鐨勬渶鏈綅涓?琛ㄧず璇ユ暟涓哄伓鏁幫紝鏈鏈綅涓?琛ㄧず璇ユ暟涓哄鏁?<br><br>    === 2. or榪愮畻 ===<br>    or榪愮畻閫氬父鐢ㄤ簬浜岃繘鍒剁壒瀹氫綅涓婄殑鏃犳潯浠惰祴鍊鹼紝渚嬪涓涓暟or 1鐨勭粨鏋滃氨鏄妸浜岃繘鍒舵渶鏈綅寮鴻鍙樻垚1銆傚鏋滈渶瑕佹妸浜岃繘鍒舵渶鏈綅鍙樻垚0錛屽榪欎釜鏁皁r 1涔嬪悗鍐嶅噺涓灝卞彲浠ヤ簡錛屽叾瀹為檯鎰忎箟灝辨槸鎶婅繖涓暟寮鴻鍙樻垚鏈鎺ヨ繎鐨勫伓鏁般?br><br>    === 3. xor榪愮畻 ===<br>    xor 榪愮畻閫氬父鐢ㄤ簬瀵逛簩榪涘埗鐨勭壒瀹氫竴浣嶈繘琛屽彇鍙嶆搷浣滐紝鍥犱負(fù)寮傛垨鍙互榪欐牱瀹氫箟錛?鍜?寮傛垨0閮戒笉鍙橈紝寮傛垨1鍒欏彇鍙嶃?br>    xor榪愮畻鐨勯嗚繍綆楁槸瀹冩湰韜紝 涔熷氨鏄涓ゆ寮傛垨鍚屼竴涓暟鏈鍚庣粨鏋滀笉鍙橈紝鍗?a xor b) xor b = a銆倄or榪愮畻鍙互鐢ㄤ簬綆鍗曠殑鍔犲瘑錛屾瘮濡傛垜鎯沖鎴慚M璇?314520錛屼絾鎬曞埆浜虹煡閬擄紝浜庢槸鍙屾柟綰﹀畾鎷挎垜鐨勭敓鏃?9880516浣滀負(fù)瀵嗛挜銆?314520 xor 19880516 = 20665500錛屾垜灝辨妸20665500鍛婅瘔MM銆侻M鍐嶆璁$畻20665500 xor 19880516鐨勫鹼紝寰楀埌1314520錛屼簬鏄ス灝辨槑鐧戒簡鎴戠殑浼佸浘銆?br>    涓嬮潰鎴戜滑鐪嬪彟澶栦竴涓笢瑗褲傚畾涔変袱涓鍙?鍜孈錛堟垜鎬庝箞鎵句笉鍒伴偅涓湀 閲屾湁涓弶鐨勫瓧絎︼級錛岃繖涓や釜絎﹀彿浜掍負(fù)閫嗚繍綆楋紝涔熷氨鏄(x # y) @ y = x銆傜幇鍦ㄤ緷嬈℃墽琛屼笅闈笁鏉″懡浠わ紝緇撴灉鏄粈涔堬紵<br><code>x <- x # y<br>y <- x @ y<br>x <- x @ y</code><br>    鎵ц浜嗙涓鍙ュ悗x鍙樻垚浜唜 # y銆傞偅涔堢浜屽彞瀹炶川灝辨槸y <- x # y @ y錛岀敱浜?鍜孈浜掍負(fù)閫嗚繍綆楋紝閭d箞姝ゆ椂鐨剏鍙樻垚浜嗗師鏉ョ殑x銆傜涓夊彞涓瓁瀹為檯涓婅璧嬪間負(fù)(x # y) @ x錛屽鏋?榪愮畻鍏鋒湁浜ゆ崲寰嬶紝閭d箞璧嬪煎悗x灝卞彉鎴愭渶鍒濈殑y浜嗐傝繖涓夊彞璇濈殑緇撴灉鏄紝x鍜寉鐨勪綅緗簰鎹簡銆?br>    鍔犳硶鍜屽噺娉曚簰涓洪嗚繍綆楋紝 騫朵笖鍔犳硶婊¤凍浜ゆ崲寰嬨傛妸#鎹㈡垚+錛屾妸@鎹㈡垚-錛屾垜浠彲浠ュ啓鍑轟竴涓笉闇瑕佷復(fù)鏃跺彉閲忕殑swap榪囩▼(Pascal)銆?br><code>procedure swap(var a,b:longint);<br>begin<br>   a:=a + b;<br>   b:=a - b;<br>   a:=a - b;<br>end;</code><br>    濂戒簡錛屽垰鎵嶄笉鏄xor鐨勯嗚繍綆楁槸瀹冩湰韜悧錛熶簬鏄垜浠氨鏈変簡涓涓湅璧鋒潵闈炲父璇″紓鐨? swap榪囩▼錛?br><code>procedure swap(var a,b:longint);<br>begin<br>   a:=a xor b;<br>   b:=a xor b;<br>   a:=a xor b;<br>end;</code><br><br>    === 4. not榪愮畻 ===<br>    not榪愮畻鐨勫畾涔夋槸鎶婂唴瀛樹腑鐨?鍜?鍏ㄩ儴鍙栧弽銆備嬌鐢╪ot榪愮畻鏃惰鏍煎灝忓績錛屼綘闇瑕佹敞鎰忔暣鏁扮被鍨嬫湁娌℃湁絎﹀彿銆? 濡傛灉not鐨勫璞℃槸鏃犵鍙鋒暣鏁幫紙涓嶈兘琛ㄧず璐熸暟錛夛紝閭d箞寰楀埌鐨勫煎氨鏄畠涓庤綾誨瀷涓婄晫鐨勫樊錛屽洜涓烘棤絎﹀彿綾誨瀷鐨勬暟鏄敤$0000鍒?FFFF渚濇琛ㄧず鐨勩備笅闈㈢殑 涓や釜紼嬪簭錛堜粎璇█涓嶅悓錛夊潎榪斿洖65435銆?br><code>var<br>   a:word;<br>begin<br>   a:=100;<br>   a:=not a;<br>   writeln(a);<br>end.</code><br><code>#include <stdio.h><br>int main()<br>{<br>    unsigned short a=100;<br>    a = ~a;<br>    printf( "%d\n", a );    <br>    return 0;<br>}</code><br>    濡? 鏋渘ot鐨勫璞℃槸鏈夌鍙風(fēng)殑鏁存暟錛屾儏鍐靛氨涓嶄竴鏍蜂簡錛岀◢鍚庢垜浠細(xì)鍦?#8220;鏁存暟綾誨瀷鐨勫偍瀛?#8221;灝忚妭涓彁鍒般?br><br>    === 5. shl榪愮畻 ===<br>    a shl b灝辮〃紺烘妸a杞負(fù)浜岃繘鍒跺悗宸︾Щb浣嶏紙鍦ㄥ悗闈㈡坊b涓?錛夈備緥濡?00鐨勪簩榪涘埗涓?100100錛岃?10010000杞垚鍗佽繘鍒舵槸400錛岄偅涔?00 shl 2 = 400銆傚彲浠ョ湅鍑猴紝a shl b鐨勫煎疄闄呬笂灝辨槸a涔樹互2鐨刡嬈℃柟錛屽洜涓哄湪浜岃繘鍒舵暟鍚庢坊涓涓?灝辯浉褰撲簬璇ユ暟涔樹互2銆?br>    閫氬父 璁や負(fù)a shl 1姣攁 * 2鏇村揩錛屽洜涓哄墠鑰呮槸鏇村簳灞備竴浜涚殑鎿嶄綔銆傚洜姝ょ▼搴忎腑涔樹互2鐨勬搷浣滆灝介噺鐢ㄥ乏縐諱竴浣嶆潵浠f浛銆?br>    瀹氫箟涓浜涘父閲忓彲鑳戒細(xì) 鐢ㄥ埌shl榪愮畻銆備綘鍙互鏂逛究鍦扮敤1 shl 16 - 1鏉ヨ〃紺?5535銆傚緢澶氱畻娉曞拰鏁版嵁緇撴瀯瑕佹眰鏁版嵁瑙勬ā蹇呴』鏄?鐨勫箓錛屾鏃跺彲浠ョ敤shl鏉ュ畾涔塎ax_N絳夊父閲忋?br><br>    === 6. shr榪愮畻 ===<br>    鍜宻hl鐩鎬技錛宎 shr b琛ㄧず浜岃繘鍒跺彸縐籦浣嶏紙鍘繪帀鏈玝浣嶏級錛岀浉褰撲簬a闄や互2鐨刡嬈℃柟錛堝彇鏁達(dá)級銆傛垜浠篃緇忓父鐢╯hr 1鏉ヤ唬鏇縟iv 2錛屾瘮濡備簩鍒嗘煡鎵俱佸爢鐨勬彃鍏ユ搷浣滅瓑絳夈傛兂鍔炴硶鐢╯hr浠f浛闄ゆ硶榪愮畻鍙互浣跨▼搴忔晥鐜囧ぇ澶ф彁楂樸傛渶澶у叕綰︽暟鐨勪簩榪涘埗綆楁硶鐢ㄩ櫎浠?鎿嶄綔鏉ヤ唬鏇挎參寰楀嚭濂囩殑mod榪? 綆楋紝鏁堢巼鍙互鎻愰珮60%銆?br><br><br>浣嶈繍綆楃殑綆鍗曞簲鐢?br>    鏈夋椂鎴戜滑鐨勭▼搴忛渶瑕佷竴涓妯′笉澶х殑Hash琛ㄦ潵璁板綍鐘舵併傛瘮濡傦紝鍋氭暟 鐙椂鎴戜滑闇瑕?7涓狧ash琛ㄦ潵緇熻姣忎竴琛屻佹瘡涓鍒楀拰姣忎竴涓皬涔?jié)瀹牸閲屽凡缁忔湁鍝簺鏁颁簡銆傛鏃訛紝鎴戜滑鍙互鐢?7涓皬浜?^9鐨勬暣鏁拌繘琛岃褰曘備緥濡傦紝涓涓彧濉? 浜?鍜?鐨勫皬涔?jié)瀹牸灏辩敤鏁板?8琛ㄧず錛堜簩榪涘埗涓?00010010錛夛紝鑰屾煇涓琛岀殑鐘舵佷負(fù)511鍒欒〃紺鴻繖涓琛屽凡緇忓~婊°傞渶瑕佹敼鍙樼姸鎬佹椂鎴戜滑涓嶉渶瑕佹妸榪欎釜鏁拌漿 鎴愪簩榪涘埗淇敼鍚庡啀杞洖鍘伙紝鑰屾槸鐩存帴榪涜浣嶆搷浣溿傚湪鎼滅儲(chǔ)鏃訛紝鎶婄姸鎬佽〃紺烘垚鏁存暟鍙互鏇村ソ鍦拌繘琛屽垽閲嶇瓑鎿嶄綔銆?a target="_blank">榪欓亾棰?/a>鏄湪鎼滅儲(chǔ)涓嬌鐢ㄤ綅榪愮畻鍔犻熺殑緇忓吀渚嬪瓙銆備互鍚庢垜浠細(xì)鐪嬪埌鏇村鐨勪緥瀛愩?br>    涓嬮潰鍒椾婦浜嗕竴浜涘父瑙佺殑 浜岃繘鍒朵綅鐨勫彉鎹㈡搷浣溿?br><br>    鍔熻兘              |           紺轟緥            |    浣嶈繍綆?br>----------------------+---------------------------+--------------------<br>鍘? 鎺夋渶鍚庝竴浣?nbsp;         | (101101->10110)           | x shr 1<br>鍦ㄦ渶鍚庡姞涓涓? 0         | (101101->1011010)         | x shl 1<br>鍦ㄦ渶鍚庡姞涓涓?         | (101101->1011011)         | x shl 1+1<br>鎶婃渶鍚庝竴浣嶅彉鎴?       | (101100->101101)          | x or 1<br>鎶婃渶鍚庝竴浣嶅彉鎴?       | (101101->101100)          | x or 1-1<br>鏈鍚庝竴浣嶅彇鍙?nbsp;         | (101101->101100)          | x xor 1<br>鎶婂彸鏁扮k浣嶅彉鎴?      | (101001->101101,k=3)      | x or (1 shl (k-1))<br>鎶婂彸鏁扮k浣嶅彉鎴?      | (101101->101001,k=3)      | x and not (1 shl (k-1))<br>鍙蟲暟絎琸浣嶅彇 鍙?nbsp;        | (101001->101101,k=3)      | x xor (1 shl (k-1))<br>鍙栨湯涓? 浣?nbsp;             | (1101101->101)            | x and 7<br>鍙栨湯k 浣?nbsp;              | (1101101->1101,k=5)       | x and (1 shl k-1)<br>鍙栧彸 鏁扮k浣?nbsp;          | (1101101->1,k=4)          | x shr (k-1) and 1<br>鎶婃湯k 浣嶅彉鎴?          | (101001->101111,k=4)      | x or (1 shl k-1)<br>鏈玨浣嶅彇 鍙?nbsp;            | (101001->100110,k=4)      | x xor (1 shl k-1)<br>鎶婂彸杈硅繛 緇殑1鍙樻垚0    | (100101111->100100000)    | x and (x+1)<br>鎶婂彸璧風(fēng)涓涓?鍙樻垚 1    | (100101111->100111111)    | x or (x+1)<br>鎶婂彸杈硅繛緇殑0鍙樻垚1    | (11011000->11011111)      | x or (x-1)<br>鍙栧彸杈硅繛緇殑1         | (100101111->1111)         | (x xor (x+1)) shr 1<br>鍘繪帀鍙寵搗絎竴涓?鐨勫乏杈?| (100101000->1000)         | x and (x xor (x-1))<br><br>    鏈鍚庤繖涓涓湪鏍?wèi)鐘舵暟缁? 涓細(xì)鐢ㄥ埌銆?br><br><br>Pascal鍜孋涓殑16榪涘埗琛ㄧず<br>    Pascal涓渶瑕佸湪16榪涘埗鏁板墠鍔?絎﹀彿琛ㄧず錛孋涓渶瑕佸湪鍓嶉潰鍔? 0x鏉ヨ〃紺恒傝繖涓互鍚庢垜浠細(xì)緇忓父鐢ㄥ埌銆?br><br>鏁存暟綾誨瀷鐨勫偍瀛?br>    鎴戜滑鍓嶉潰鎵璇寸殑浣嶈繍綆楅兘娌℃湁娑夊強(qiáng)璐熸暟錛岄兘鍋囪榪欎簺榪愮畻鏄湪 unsigned/word綾誨瀷錛堝彧鑳借〃紺烘鏁扮殑鏁村瀷錛変笂榪涜鎿嶄綔銆備絾璁$畻鏈哄浣曞鐞嗘湁姝h礋絎﹀彿鐨勬暣鏁扮被鍨嬪憿錛熶笅闈袱涓▼搴忛兘鏄冨療16浣嶆暣鏁扮殑鍌ㄥ瓨鏂瑰紡 錛堝彧鏄璦涓嶅悓錛夈?br><code>var<br>   a,b:integer;<br>begin<br>   a:=$0000;<br>   b:=$0001;<br>   write(a,' ',b,' ');<br>   a:=$FFFE;<br>   b:=$FFFF;<br>   write(a,' ',b,' ');<br>   a:=$7FFF;<br>   b:=$8000;<br>   writeln(a,' ',b);<br>end.</code><br><code>#include <stdio.h><br>int main()<br>{<br>    short int a, b;<br>    a = 0×0000;<br>    b = 0×0001;<br>    printf( "%d %d ", a, b );<br>    a = 0xFFFE;<br>    b = 0xFFFF;<br>    printf( "%d %d ", a, b );<br>    a = 0×7FFF;<br>    b = 0×8000;<br>    printf( "%d %d\n", a, b );<br>    return 0;<br>}</code><br>    涓や釜紼嬪簭鐨勮緭鍑哄潎涓? 1 -2 -1 32767 -32768銆傚叾涓墠涓や釜鏁版槸鍐呭瓨鍊兼渶灝忕殑鏃跺欙紝涓棿涓や釜鏁板垯鏄唴瀛樺兼渶澶х殑鏃跺欙紝鏈鍚庤緭鍑虹殑涓や釜鏁版槸姝f暟涓庤礋鏁扮殑鍒嗙晫澶勩傜敱姝や綘鍙互娓呮鍦扮湅鍒拌綆楁満鏄? 濡備綍鍌ㄥ瓨涓涓暣鏁扮殑錛氳綆楁満鐢?0000鍒?7FFF渚濇琛ㄧず0鍒?2767鐨勬暟錛屽墿涓嬬殑$8000鍒?FFFF渚濇琛ㄧず-32768鍒?1鐨勬暟銆?2浣? 鏈夌鍙鋒暣鏁扮殑鍌ㄥ瓨鏂瑰紡涔熸槸綾諱技鐨勩傜◢鍔犳敞鎰忎綘浼?xì)鍙戠帋图屼簩杩涘埗鐨劷W竴浣嶆槸鐢ㄦ潵琛ㄧず姝h礋鍙風(fēng)殑錛?琛ㄧず姝o紝1琛ㄧず璐熴傝繖閲屾湁涓涓棶棰橈細(xì)0鏈潵鏃笉鏄鏁幫紝涔熶笉鏄? 璐熸暟錛屼絾瀹冨崰鐢ㄤ簡$0000鐨勪綅緗紝鍥犳鏈夌鍙風(fēng)殑鏁存暟綾誨瀷鑼冨洿涓鏁頒釜鏁版瘮璐熸暟灝戜竴涓傚涓涓湁絎﹀彿鐨勬暟榪涜not榪愮畻鍚庯紝鏈楂樹綅鐨勫彉鍖栧皢瀵艱嚧姝h礋棰犲掞紝 騫朵笖鏁扮殑緇濆鍊間細(xì)宸?銆備篃灝辨槸璇達(dá)紝not a瀹為檯涓婄瓑浜?a-1銆傝繖縐嶆暣鏁板偍瀛樻柟寮忓彨鍋?#8220;琛ョ爜”銆?br><br>鏈鍚庤繕鏈変袱鍙ヨ瘽<br>    Matrix67 鍘熷垱<br>    杞創(chuàng)璇鋒敞鏄庡嚭澶?br><br><a title="Permanent link to 浣嶈繍綆楃畝浠嬪強(qiáng)瀹炵敤鎶宸э紙浜岋級錛氳繘闃剁瘒(1)" rel="bookmark">浣? 榪愮畻綆浠嬪強(qiáng)瀹炵敤鎶宸э紙浜岋級錛氳繘闃剁瘒(1)</a> <br> <p>=====   鐪熸寮虹殑涓滆タ鏉ヤ簡錛?nbsp;  =====<br><br>浜岃繘鍒朵腑鐨?鏈夊鏁頒釜榪樻槸鍋舵暟涓?br>    鎴戜滑鍙互鐢ㄤ笅闈㈢殑浠g爜鏉ヨ綆? 涓涓?2浣嶆暣鏁扮殑浜岃繘鍒朵腑1鐨勪釜鏁扮殑濂囧伓鎬э紝褰撹緭鍏ユ暟鎹殑浜岃繘鍒惰〃紺洪噷鏈夊伓鏁頒釜鏁板瓧1鏃剁▼搴忚緭鍑?錛屾湁濂囨暟涓垯杈撳嚭1銆備緥濡傦紝1314520鐨勪簩榪涘埗 101000000111011011000涓湁9涓?錛屽垯x=1314520鏃剁▼搴忚緭鍑?銆?br><code>var<br>   i,x,c:longint;<br>begin<br>   readln(x);<br>   c:=0;<br>   for i:=1 to 32 do<br>   begin<br>      c:=c + x and 1;<br>      x:=x shr 1;<br>   end;<br>   writeln( c and 1 );<br>end.</code><br>    浣嗚繖鏍風(fēng)殑鏁堢巼騫朵笉楂橈紝浣嶈繍綆楃殑紲炲涔嬪榪? 娌℃湁浣撶幇鍑烘潵銆?br>    鍚屾牱鏄垽鏂簩榪涘埗涓?鐨勪釜鏁扮殑濂囧伓鎬э紝涓嬮潰榪欐浠g爜灝卞己浜嗐備綘鑳界湅鍑鴻繖涓唬鐮佺殑鍘熺悊鍚楋紵<br><code>var<br>   x:longint;<br>begin<br>   readln(x);<br>   x:=x xor (x shr 1);<br>   x:=x xor (x shr 2);<br>   x:=x xor (x shr 4);<br>   x:=x xor (x shr 8);<br>   x:=x xor (x shr 16);<br>   writeln(x and 1);<br>end.</code><br>    涓轟簡璇存槑 涓婇潰榪欐浠g爜鐨勫師鐞嗭紝鎴戜滑榪樻槸鎷?314520鍑烘潵璇翠簨銆?314520鐨勪簩榪涘埗涓?01000000111011011000錛岀涓嬈″紓鎴栨搷浣滅殑緇撴灉濡? 涓嬶細(xì)<br><br>    00000000000101000000111011011000<br>XOR  0000000000010100000011101101100<br>---------------------------------------<br>    00000000000111100000100110110100<br><br>    寰? 鍒扮殑緇撴灉鏄竴涓柊鐨勪簩榪涘埗鏁幫紝鍏朵腑鍙寵搗絎琲浣嶄笂鐨勬暟琛ㄧず鍘熸暟涓i鍜宨+1浣嶄笂鏈夊鏁頒釜1榪樻槸鍋舵暟涓?銆傛瘮濡傦紝鏈鍙寵竟閭d釜0琛ㄧず鍘熸暟鏈袱浣嶆湁鍋舵暟涓?錛屽彸 璧風(fēng)3浣嶄笂鐨?灝辮〃紺哄師鏁扮殑榪欎釜浣嶇疆鍜屽墠涓涓綅緗腑鏈夊鏁頒釜1銆傚榪欎釜鏁拌繘琛岀浜屾寮傛垨鐨勭粨鏋滃涓嬶細(xì)<br><br>    00000000000111100000100110110100<br>XOR   000000000001111000001001101101<br>---------------------------------------<br>    00000000000110011000101111011001<br><br>    緇? 鏋滈噷鐨勬瘡涓?琛ㄧず鍘熸暟鐨勮浣嶇疆鍙?qiáng)鍏跺墠闈笁涓綅缃腑鍏辨湁濂囨曨C釜1錛屾瘡涓?灝辮〃紺哄師鏁板搴旂殑鍥涗釜浣嶇疆涓婂叡鍋舵暟涓?銆備竴鐩村仛鍒扮浜旀寮傛垨緇撴潫鍚庯紝寰楀埌鐨勪簩榪涘埗鏁? 鐨勬渶鏈綅灝辮〃紺烘暣涓?2浣嶆暟閲屾湁澶氬皯涓?錛岃繖灝辨槸鎴戜滑鏈緇堟兂瑕佺殑絳旀銆?br><br><br>璁$畻浜岃繘鍒朵腑鐨?鐨勪釜鏁?br>    鍚屾牱鍋囪x鏄竴涓? 32浣嶆暣鏁般傜粡榪囦笅闈簲嬈¤祴鍊煎悗錛寈鐨勫煎氨鏄師鏁扮殑浜岃繘鍒惰〃紺轟腑鏁板瓧1鐨勪釜鏁般傛瘮濡傦紝鍒濆鏃秞涓?314520錛堢綉鍙嬫姄鐙傦細(xì)鑳戒笉鑳芥崲涓涓暟鍟婏級錛岄偅涔堟渶鍚? x灝卞彉鎴愪簡9錛屽畠琛ㄧず1314520鐨勪簩榪涘埗涓湁9涓?銆?br><code>x := (x and $55555555) + ((x shr 1) and $55555555); <br>x := (x and $33333333) + ((x shr 2) and $33333333); <br>x := (x and $0F0F0F0F) + ((x shr 4) and $0F0F0F0F); <br>x := (x and $00FF00FF) + ((x shr 8) and $00FF00FF); <br>x := (x and $0000FFFF) + ((x shr 16) and $0000FFFF); </code><br>    涓轟簡渚夸簬瑙h錛屾垜浠笅闈粎璇存槑榪欎釜紼嬪簭鏄浣曞涓涓?浣嶆暣鏁拌繘 琛屽鐞嗙殑銆傛垜浠嬁鏁板瓧211錛堟垜浠彮鏌怣M鐨勭敓鏃ワ級鏉ュ紑鍒銆?11鐨勪簩榪涘埗涓?1010011銆?br><br>+---+---+---+---+---+---+---+---+<br>| 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 |   <---鍘熸暟<br>+---+---+---+---+---+---+---+---+<br>|  1 0  |  0 1  |  0 0  |  1 0  |   <---絎竴嬈¤繍綆楀悗<br>+-------+-------+-------+-------+<br>|    0 0 1 1    |    0 0 1 0    |   <---絎簩嬈¤繍綆楀悗<br>+---------------+---------------+<br>|        0 0 0 0 0 1 0 1        |   <---絎笁嬈¤繍綆楀悗錛屽緱鏁頒負(fù)5<br>+-------------------------------+<br><br>    鏁? 涓▼搴忔槸涓涓垎娌葷殑鎬濇兂銆傜涓嬈℃垜浠妸姣忕浉閭?cè)潥勪袱浣嶅姞钃v鏉ワ紝寰楀埌姣忎袱浣嶉噷1鐨勪釜鏁幫紝姣斿鍓嶄袱浣?0灝辮〃紺哄師鏁扮殑鍓嶄袱浣嶆湁2涓?銆傜浜屾鎴戜滑緇х畫涓や袱鐩? 鍔狅紝10+01=11錛?0+10=10錛屽緱鍒扮殑緇撴灉鏄?0110010錛屽畠琛ㄧず鍘熸暟鍓?浣嶆湁3涓?錛屾湯4浣嶆湁2涓?銆傛渶鍚庝竴嬈℃垜浠妸0011鍜?010 鍔犺搗鏉ワ紝寰楀埌鐨勫氨鏄暣涓簩榪涘埗涓?鐨勪釜鏁般傜▼搴忎腑宸у鍦頒嬌鐢ㄥ彇浣嶅拰鍙崇Щ錛屾瘮濡傜浜岃涓?33333333鐨勪簩榪涘埗涓?0110011001100….錛岀敤 瀹冨拰x鍋歛nd榪愮畻灝辯浉褰撲簬浠?涓哄崟浣嶉棿闅斿彇鏁般俿hr鐨勪綔鐢ㄥ氨鏄鍔犳硶榪愮畻鐨勭浉鍚屾暟浣嶅榻愩?br><br><br>浜屽垎鏌ユ壘32浣嶆暣鏁扮殑鍓嶅0涓暟<br>    榪? 閲岀敤鐨凜璇█錛屾垜鐩存帴Copy鐨凥acker's Delight涓婄殑浠g爜銆傝繖孌典唬鐮佸啓鎴怌瑕佸ソ鐪嬩簺錛屽啓鎴怭ascal鐨勮瘽浼?xì)鍑虹幇寰堝begin鍜宔nd錛屾悶寰椾唬鐮佸緢闅劇湅銆傜▼搴忔濇兂鏄簩鍒嗘煡鎵撅紝搴旇寰堢畝 鍗曪紝鎴戝氨涓嶇粏璇翠簡銆?br><code>int nlz(unsigned x)<br>{<br>   int n;<br><br>   if (x == 0) return(32);<br>   n = 1;<br>   if ((x >> 16) == 0) {n = n +16; x = x <<16;}<br>   if ((x >> 24) == 0) {n = n + 8; x = x << 8;}<br>   if ((x >> 28) == 0) {n = n + 4; x = x << 4;}<br>   if ((x >> 30) == 0) {n = n + 2; x = x << 2;}<br>   n = n - (x >> 31);<br>   return n;<br>}</code><br><br><br>鍙敤浣嶈繍綆楁潵鍙? 緇濆鍊?br>    榪欐槸涓涓潪甯告湁瓚g殑闂銆傚ぇ瀹跺厛鑷繁鎯蟲兂鍚э紝Ctrl+A鏄劇ず絳旀銆?br>    絳旀錛氬亣璁緓涓?2浣嶆暣鏁幫紝鍒檟 xor (not (x shr 31) + 1) + x shr 31鐨勭粨鏋滄槸x鐨勭粷瀵瑰?br>    x shr 31鏄簩榪涘埗鐨勬渶楂樹綅錛屽畠鐢ㄦ潵琛ㄧずx鐨勭鍙楓傚鏋滃畠涓?錛坸涓烘錛夛紝鍒檔ot (x shr 31) + 1絳変簬$00000000錛屽紓鎴栦換浣曟暟緇撴灉閮戒笉鍙橈紱濡傛灉鏈楂樹綅涓?錛坸涓鴻礋錛夛紝鍒檔ot (x shr 31) + 1絳変簬$FFFFFFFF錛寈寮傛垨瀹冪浉褰撲簬鎵鏈夋暟浣嶅彇鍙嶏紝寮傛垨瀹屽悗鍐嶅姞涓銆?br><br><br>楂樹綆浣嶄氦鎹?br>    <a target="_blank">榪欎釜棰?/a>瀹為檯涓婃槸鎴戝嚭鐨勶紝鍋氫負(fù)瀛︽牎鍐呴儴NOIp妯℃嫙璧涚殑絎竴棰樸傞鐩槸榪欐牱錛?br><br> </p> <blockquote>    緇欏嚭涓涓皬浜?^32鐨勬鏁存暟銆傝繖涓暟鍙互鐢ㄤ竴涓?2浣嶇殑浜岃繘鍒舵暟琛ㄧず錛堜笉瓚?2浣嶇敤0琛ヨ凍錛夈傛垜浠О榪欎釜浜岃繘 鍒舵暟鐨勫墠16浣嶄負(fù)“楂樹綅”錛屽悗16浣嶄負(fù)“浣庝綅”銆傚皢瀹冪殑楂樹綆浣嶄氦鎹紝鎴戜滑鍙互寰楀埌涓涓柊鐨勬暟銆傝瘯闂繖涓柊鐨勬暟鏄灝戯紙鐢ㄥ崄榪涘埗琛ㄧず錛夈?br>銆銆渚嬪錛? 鏁?314520鐢ㄤ簩榪涘埗琛ㄧず涓?000 0000 0001 0100 0000 1110 1101 1000錛堟坊鍔犱簡11涓墠瀵?琛ヨ凍涓?2浣嶏級錛屽叾涓墠16浣嶄負(fù)楂樹綅錛屽嵆0000 0000 0001 0100錛涘悗16浣嶄負(fù)浣庝綅錛屽嵆0000 1110 1101 1000銆傚皢瀹冪殑楂樹綆浣嶈繘琛屼氦鎹紝鎴戜滑寰楀埌浜嗕竴涓柊鐨勪簩榪涘埗鏁?000 1110 1101 1000 0000 0000 0001 0100銆傚畠鍗蟲槸鍗佽繘鍒剁殑249036820銆? <p> </p> </blockquote> <p><br>    褰撴椂鍑犱箮娌℃湁浜烘兂鍒扮敤涓鍙ヤ綅鎿嶄綔鏉ヤ唬鏇垮啑闀跨殑紼嬪簭銆備嬌鐢ㄤ綅榪愮畻鐨勮瘽涓ゅ彞璇濆氨瀹屼簡銆?br><code>var<br>   n:dword;<br>begin<br>   readln( n );<br>   writeln( (n shr 16) or (n  shl 16) );<br>end.</code><br>    鑰屼簨瀹炰笂錛孭ascal鏈変竴涓郴緇熷嚱鏁皊wap鐩存帴灝卞彲浠ョ敤銆?br><br><br>浜? 榪涘埗閫嗗簭<br>    涓嬮潰鐨勭▼搴忚鍏ヤ竴涓?2浣嶆暣鏁板茍杈撳嚭瀹冪殑浜岃繘鍒跺掑簭鍚庢墍琛ㄧず鐨勬暟銆?br>    杈撳叆錛? 1314520    錛堜簩榪涘埗涓?0000000000101000000111011011000錛?br>    杈撳嚭錛? 460335104  錛堜簩榪涘埗涓?0011011011100000010100000000000錛?br><code>var<br>   x:dword;<br>begin<br>   readln(x);<br>   x := (x and $55555555) shl  1 or (x and $AAAAAAAA) shr  1;<br>   x := (x and $33333333) shl  2 or (x and $CCCCCCCC) shr  2;<br>   x := (x and $0F0F0F0F) shl  4 or (x and $F0F0F0F0) shr  4;<br>   x := (x and $00FF00FF) shl  8 or (x and $FF00FF00) shr  8;<br>   x := (x and $0000FFFF) shl 16 or (x and $FFFF0000) shr 16;<br>   writeln(x);<br>end.</code><br>    瀹冪殑鍘熺悊鍜屽垰鎵嶆眰浜岃繘鍒朵腑1 鐨勪釜鏁伴偅涓緥棰樻槸澶ц嚧鐩稿悓鐨勩傜▼搴忛鍏堜氦鎹㈡瘡鐩擱偦涓や綅涓婄殑鏁幫紝浠ュ悗鎶婁簰鐩鎬氦鎹㈣繃鐨勬暟鐪嬫垚涓涓暣浣擄紝緇х畫榪涜浠?浣嶄負(fù)鍗曚綅銆佷互4浣嶄負(fù)鍗曚綅鐨勫乏鍙沖鎹㈡搷浣溿傛垜 浠啀嬈$敤8浣嶆暣鏁?11鏉ユ紨紺虹▼搴忔墽琛岃繃紼嬶細(xì)<br>+---+---+---+---+---+---+---+---+<br>| 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 |   <---鍘熸暟<br>+---+---+---+---+---+---+---+---+<br>|  1 1  |  1 0  |  0 0  |  1 1  |   <---絎竴嬈¤繍綆楀悗<br>+-------+-------+-------+-------+<br>|    1 0 1 1    |    1 1 0 0    |   <---絎簩嬈¤繍綆楀悗<br>+---------------+---------------+<br>|        1 1 0 0 1 0 1 1        |   <---絎笁嬈¤繍綆楀悗<br>+-------------------------------+<br><br><br>Copyright 涔熷緢寮?br><code>writeln('Matrix' , 42 XOR 105 , '鍘熷垱錛岃漿璐磋娉ㄦ槑鍑哄');</code></p> <a title="Permanent link to 浣嶈繍綆楃畝浠嬪強(qiáng)瀹炵敤鎶宸э紙涓夛級錛氳繘闃剁瘒(2)" rel="bookmark">浣? 榪愮畻綆浠嬪強(qiáng)瀹炵敤鎶宸э紙涓夛級錛氳繘闃剁瘒(2)</a> <br> <p>浠婂ぉ鎴戜滑鏉ョ湅涓や釜紼嶅井澶嶆潅涓鐐圭殑渚嬪瓙銆?br><br>n鐨囧悗闂浣嶈繍綆楃増<br>    n鐨囧悗闂鏄暐鎴戝氨涓嶈浜嗗惂錛屽緙栫▼鐨勮偗瀹氶兘瑙佽繃銆備笅闈? 鐨勫崄澶氳浠g爜鏄痭鐨囧悗闂鐨勪竴涓珮鏁堜綅榪愮畻紼嬪簭錛岀湅鍒拌繃鐨勪漢閮藉じ瀹冪墰銆傚垵濮嬫椂錛寀pperlim:=(1 shl n)-1銆備富紼嬪簭璋冪敤test(0,0,0)鍚巗um鐨勫煎氨鏄痭鐨囧悗鎬葷殑瑙f暟銆傛嬁榪欎釜鍘諱氦USACO錛?.3s錛屾毚鐖姐?br><code>procedure test(row,ld,rd:longint);<br>var<br>      pos,p:longint;<br>begin<br><br>{ 1}  if row<>upperlim then<br>{ 2}  begin<br>{ 3}     pos:=upperlim and not (row or ld or rd);<br>{ 4}     while pos<>0 do<br>{ 5}     begin<br>{ 6}        p:=pos and -pos;<br>{ 7}        pos:=pos-p;<br>{ 8}        test(row+p,(ld+p)shl 1,(rd+p)shr 1);<br>{ 9}     end;<br>{10}  end<br>{11}  else inc(sum);<br><br>end;</code><br>    涔? 涓鐪嬩技涔庡畬鍏ㄦ懜涓嶇潃澶磋剳錛屽疄闄呬笂鏁翠釜紼嬪簭鏄潪甯稿鏄撶悊瑙g殑銆傝繖閲岃繕鏄緩璁ぇ瀹惰嚜宸卞崟姝ヨ繍琛屼竴鎺㈢┒绔燂紝瀹炲湪娌$爺絀跺嚭鏉ュ啀鐪嬩笅闈㈢殑瑙h銆?br><br><img alt="" src="http://www.matrix67.com/blogimage/200707261.gif" border="0">  <img alt="" src="http://www.matrix67.com/blogimage/200707262.gif" border="0"><br>    鍜? 鏅氱畻娉曚竴鏍鳳紝榪欐槸涓涓掑綊榪囩▼錛岀▼搴忎竴琛屼竴琛屽湴瀵繪壘鍙互鏀劇殗鍚庣殑鍦版柟銆傝繃紼嬪甫涓変釜鍙傛暟錛宺ow銆乴d鍜宺d錛屽垎鍒〃紺哄湪綰靛垪鍜屼袱涓瑙掔嚎鏂瑰悜鐨勯檺鍒舵潯浠? 涓嬭繖涓琛岀殑鍝簺鍦版柟涓嶈兘鏀俱傛垜浠互6×6鐨勬鐩樹負(fù)渚嬶紝鐪嬬湅紼嬪簭鏄庝箞宸ヤ綔鐨勩傚亣璁劇幇鍦ㄥ凡緇忛掑綊鍒扮鍥涘眰錛屽墠涓夊眰鏀劇殑瀛愬凡緇忔爣鍦ㄥ乏鍥句笂浜嗐傜孩鑹層佽摑鑹插拰緇胯壊 鐨勭嚎鍒嗗埆琛ㄧず涓変釜鏂瑰悜涓婃湁鍐茬獊鐨勪綅緗紝浣嶄簬璇ヨ涓婄殑鍐茬獊浣嶇疆灝辯敤row銆乴d鍜宺d涓殑1鏉ヨ〃紺恒傛妸瀹冧滑涓変釜騫惰搗鏉ワ紝寰楀埌璇ヨ鎵鏈夌殑紱佷綅錛屽彇鍙嶅悗灝卞緱鍒版墍 鏈夊彲浠ユ斁鐨勪綅緗紙鐢╬os鏉ヨ〃紺猴級銆傚墠闈㈣榪?a鐩稿綋浜巒ot a + 1錛岃繖閲岀殑浠g爜絎?琛屽氨鐩稿綋浜巔os and (not pos + 1)錛屽叾緇撴灉鏄彇鍑烘渶鍙寵竟鐨勯偅涓?銆傝繖鏍鳳紝p灝辮〃紺鴻琛岀殑鏌愪釜鍙互鏀懼瓙鐨勪綅緗紝鎶婂畠浠巔os涓Щ闄ゅ茍閫掑綊璋冪敤test榪囩▼銆傛敞鎰忛掑綊璋冪敤鏃朵笁涓弬鏁扮殑鍙? 鍖栵紝姣忎釜鍙傛暟閮藉姞涓婁簡涓涓浣嶏紝浣嗕袱涓瑙掔嚎鏂瑰悜鐨勭浣嶅涓嬩竴琛岀殑褰卞搷闇瑕佸鉤縐諱竴浣嶃傛渶鍚庯紝濡傛灉閫掑綊鍒版煇涓椂鍊欏彂鐜皉ow=111111浜嗭紝璇存槑鍏釜鐨囧悗 鍏ㄦ斁榪涘幓浜嗭紝姝ゆ椂紼嬪簭浠庣1琛岃煩鍒扮11琛岋紝鎵懼埌鐨勮В鐨勪釜鏁板姞涓銆?br><br>    ~~~~====~~~~=====   鍗庝附鐨勫垎鍓茬嚎   =====~~~~====~~~~<br><br>Gray鐮?br>    鍋囧鎴戞湁4涓綔鍦ㄧ殑GF錛屾垜闇瑕佸喅瀹氭渶緇堝埌搴曞拰璋佸湪涓璧楓備竴涓畝鍗曠殑鍔炴硶 灝辨槸錛屼緷嬈″拰姣忎釜MM浜ゅ線涓孌墊椂闂達(dá)紝鏈鍚庨夋嫨緇欐垜甯︽潵鐨?#8220;婊℃剰搴?#8221;鏈澶х殑MM銆備絾鐪嬩簡<a target="_blank">dd鐗涚殑鐞嗚</a>鍚庯紝 浜嬫儏寮濮嬪彉寰楀鏉備簡錛氭垜鍙互閫夋嫨鍜屽涓狹M鍦ㄤ竴璧楓傝繖鏍鳳紝闇瑕佽冩牳鐨勭姸鎬佸彉鎴愪簡2^4=16縐嶏紙褰撶劧鍖呮嫭0000榪欎竴鐘舵侊紝鍥犱負(fù)鎴戞湁鍙兘鏄幓鐠冿級銆傜幇鍦ㄧ殑 闂灝辨槸錛屾垜搴旇鐢ㄤ粈涔堥『搴忔潵閬嶅巻榪?6縐嶇姸鎬佸憿錛?br>    浼犵粺鐨勫仛娉曟槸錛岀敤浜岃繘鍒舵暟鐨勯『搴忔潵閬嶅巻鎵鏈夊彲鑳界殑緇勫悎銆備篃灝辨槸璇達(dá)紝鎴戦渶瑕佷互 0000->0001->0010->0011->0100->…->1111榪欐牱鐨勯『搴忓姣忕鐘舵佽繘琛屾祴璇曘傝繖涓? 欏哄簭寰堜笉縐戝錛屽緢澶氭椂鍊欑姸鎬佺殑杞Щ閮藉緢鑰楁椂銆傛瘮濡備粠0111鍒?000鏃舵垜闇瑕佹殏鏃剁敥鎺夊綋鍓嶆墍鏈夌殑3涓狹M錛岀劧鍚庡幓鎶婄4涓狹M銆傚悓鏃舵敼鍙樻墍鏈塎M涓庢垜鐨? 鍏崇郴鏄竴浠朵綍絳夊法澶х殑宸ョ▼鍟娿傚洜姝わ紝鎴戝笇鏈涚煡閬擄紝鏄惁鏈変竴縐嶆柟娉曞彲浠ヤ嬌寰楋紝浠庢病鏈塎M榪欎竴鐘舵佸嚭鍙戯紝姣忔鍙敼鍙樻垜鍜屼竴涓狹M鐨勫叧緋伙紙榪芥垨鑰呯敥錛夛紝15嬈℃搷 浣滃悗鎭板ソ閬嶅巻瀹屾墍鏈夊彲鑳界殑緇勫悎錛堟渶緇堢姸鎬佷笉涓瀹氭槸1111錛夈傚ぇ瀹惰嚜宸卞厛璇曚竴璇曠湅琛屼笉琛屻?br>    瑙e喅榪欎釜闂鐨勬柟娉曞緢宸у銆傛垜浠潵璇存槑錛屽亣濡傛垜 浠凡緇忕煡閬撲簡n=2鏃剁殑鍚堟硶閬嶅巻欏哄簭錛屾垜浠浣曞緱鍒皀=3鐨勯亶鍘嗛『搴忋傛樉鐒?dòng)灱宯=2鐨勯亶鍘嗛『搴忓涓嬶細(xì)<br><br>00<br>01<br>11<br>10<br><br>    浣? 鍙兘宸茬粡鎯沖埌浜嗗浣曟妸涓婇潰鐨勯亶鍘嗛『搴忔墿灞曞埌n=3鐨勬儏鍐點(diǎn)俷=3鏃朵竴鍏辨湁8縐嶇姸鎬侊紝鍏朵腑鍓嶉潰4涓妸n=2鐨勯亶鍘嗛『搴忕収鎼笅鏉ワ紝鐒跺悗鎶婂畠浠縐扮炕鎶樹笅鍘誨茍鍦? 鏈鍓嶉潰鍔犱笂1浣滀負(fù)鍚庨潰4涓姸鎬侊細(xì)<br><br>000<br>001<br>011<br>010  ↑<br>--------<br>110  ↓<br>111<br>101<br>100<br><br>    鐢? 榪欑鏂規(guī)硶寰楀埌鐨勯亶鍘嗛『搴忔樉鐒剁鍚堣姹傘傞鍏堬紝涓婇潰8涓姸鎬佹伆濂芥槸n=3鏃剁殑鎵鏈?縐嶇粍鍚堬紝鍥犱負(fù)瀹冧滑鏄湪n=2鐨勫叏閮ㄥ洓縐嶇粍鍚堢殑鍩虹涓婅冭檻閫変笉閫夌3涓厓绱? 鎵寰楀埌鐨勩傜劧鍚庢垜浠湅鍒幫紝鍚庨潰涓鍗婄殑鐘舵佸簲璇ュ拰鍓嶉潰涓鍗婁竴鏍鋒弧瓚?#8220;鐩擱偦鐘舵侀棿浠呬竴浣嶄笉鍚?#8221;鐨勯檺鍒訛紝鑰?#8220;闀滈潰”澶勫垯鏄渶鍓嶉潰閭d竴浣嶆暟涓嶅悓銆傚啀嬈$炕鎶樹笁闃墮亶鍘? 欏哄簭錛屾垜浠氨寰楀埌浜嗗垰鎵嶇殑闂鐨勭瓟妗堬細(xì)<br><br>0000<br>0001<br>0011<br>0010<br>0110<br>0111<br>0101<br>0100<br>1100<br>1101<br>1111<br>1110<br>1010<br>1011<br>1001<br>1000<br><br>    榪? 縐嶉亶鍘嗛『搴忎綔涓轟竴縐嶇紪鐮佹柟寮忓瓨鍦紝鍙仛Gray鐮侊紙鍐欎釜涓枃璁╄湗铔涙潵鎶擄細(xì)鏍奸浄鐮侊級銆傚畠鐨勫簲鐢ㄨ寖鍥村緢騫褲傛瘮濡傦紝n闃剁殑Gray鐮佺浉褰撲簬鍦╪緇寸珛鏂逛綋涓婄殑 Hamilton鍥炶礬錛屽洜涓烘部鐫绔嬫柟浣撲笂鐨勮竟璧頒竴姝ワ紝n緇村潗鏍囦腑鍙細(xì)鏈変竴涓兼敼鍙樸傚啀姣斿錛孏ray鐮佸拰Hanoi濉旈棶棰樼瓑浠楓侴ray鐮佹敼鍙樼殑鏄鍑犱釜 鏁幫紝Hanoi濉斿氨璇ョЩ鍔ㄥ摢涓洏瀛愩傛瘮濡傦紝3闃剁殑Gray鐮佹瘡嬈℃敼鍙樼殑鍏冪礌鎵鍦ㄤ綅緗緷嬈′負(fù)1-2-1-3-1-2-1錛岃繖姝eソ鏄?闃禜anoi濉旀瘡嬈$Щ鍔? 鐩樺瓙緙栧彿銆傚鏋滄垜浠彲浠ュ揩閫熸眰鍑篏ray鐮佺殑絎琻涓暟鏄灝戯紝鎴戜滑灝卞彲浠ヨ緭鍑轟換鎰忔鏁板悗Hanoi濉旂殑縐誨姩姝ラ銆傜幇鍦ㄦ垜鍛婅瘔浣狅紝Gray鐮佺殑絎琻涓暟錛堜粠 0綆楄搗錛夋槸n xor (n shr 1)錛屼綘鑳芥兂鍑烘潵榪欐槸涓轟粈涔堝悧錛熷厛鑷繁鎯蟲兂鍚с?br><br>    涓嬮潰鎴戜滑鎶婁簩榪涘埗鏁板拰Gray鐮侀兘鍐欏湪涓? 闈紝鍙互鐪嬪埌宸﹁竟鐨勬暟寮傛垨鑷韓鍙崇Щ鐨勭粨鏋滃氨絳変簬鍙寵竟鐨勬暟銆?br><br>浜岃繘鍒舵暟   Gray鐮?br>   000       000<br>   001       001<br>   010       011<br>   011       010<br>   100       110<br>   101       111<br>   110       101<br>   111       100<br><br>    浠? 浜岃繘鍒舵暟鐨勮搴︾湅錛?#8220;闀滃儚”浣嶇疆涓婄殑鏁板嵆鏄鍘熸暟榪涜not榪愮畻鍚庣殑緇撴灉銆傛瘮濡傦紝絎?涓暟010鍜屽掓暟絎?涓暟101鐨勬瘡涓浣嶉兘姝eソ鐩稿弽銆傚亣璁捐繖涓や釜鏁板垎 鍒負(fù)x鍜寉錛岄偅涔坸 xor (x shr 1)鍜寉 xor (y shr 1)鐨勭粨鏋滃彧鏈変竴鐐逛笉鍚岋細(xì)鍚庤呯殑棣栦綅鏄?錛屽墠鑰呯殑棣栦綅鏄?銆傝岃繖姝eソ鏄疓ray鐮佺殑鐢熸垚鏂規(guī)硶銆傝繖灝辮鏄庝簡錛孏ray鐮佺殑絎琻涓暟紜疄鏄痭 xor (n shr 1)銆?br><br>    浠婂勾鍥涙湀浠?a target="_blank">mashuo</a>緇? 鎴戠湅浜?a target="_blank">榪欓亾棰?/a>錛屾槸浜岀淮鎰忎箟涓婄殑Gray鐮併傞鐩ぇ鎰忔槸璇達(dá)紝鎶?鍒?^(n+m)-1鐨勬暟鍐欐垚2^n * 2^m鐨勭煩闃碉紝浣垮緱浣嶇疆鐩擱偦涓ゆ暟鐨勪簩榪涘埗琛ㄧず鍙湁涓浣嶄箣宸傜瓟妗堝叾瀹炲緢綆鍗曪紝鎵鏈夋暟閮芥槸鐢眒浣嶇殑Gray鐮佸拰n浣岹ray鐮佹嫾鎺ヨ屾垚錛岄渶瑕佺敤宸︾Щ鎿嶄綔鍜? or榪愮畻瀹屾垚銆傚畬鏁寸殑浠g爜濡備笅錛?br><code>var<br>   x,y,m,n,u:longint;<br>begin<br>   readln(m,n);<br>   for x:=0 to 1 shl m-1 do begin<br>      u:=(x xor (x shr 1)) shl n; //杈撳嚭鏁扮殑宸﹁竟鏄竴涓猰浣嶇殑Gray鐮?br>      for y:=0 to 1 shl n-1 do<br>         write(u or (y xor (y shr 1)),' '); //騫朵笂涓涓猲浣岹ray鐮?br>      writeln;<br>   end;<br>end.</code><br><br>Matrix67鍘熷垱<br>杞創(chuàng)璇鋒敞鏄庡嚭澶?/p> <a title="Permanent link to 浣嶈繍綆楃畝浠嬪強(qiáng)瀹炵敤鎶宸э紙鍥涳級錛氬疄鎴樼瘒" rel="bookmark"><strong> 浣嶈繍綆楃畝浠嬪強(qiáng)瀹炵敤鎶宸э紙鍥涳級錛氬疄鎴樼瘒</strong> </a><br>涓嬮潰 鍒嗕韓鐨勬槸鎴戣嚜宸卞啓鐨勪笁涓唬鐮侊紝閲岄潰鏈変簺棰樼洰涔熸槸鎴戣嚜宸卞嚭鐨勩傝繖浜涗唬鐮侀兘鏄湪鎴戠殑Pascal鏃朵唬鍐欑殑錛屾仌涓嶆彁渚汣璇█浜嗐備唬鐮佸啓寰楀茍涓嶅ソ錛屾垜鍙槸鎯沖憡璇夊ぇ 瀹朵綅榪愮畻鍦ㄥ疄鎴樹腑鐨勫簲鐢紝鍖呮嫭浜嗘悳绱㈠拰鐘舵佸帇緙〥P鏂歸潰鐨勯鐩傚叾瀹炲ぇ瀹跺彲浠ュ湪緗戜笂鎵懼埌鏇村鐢ㄤ綅榪愮畻浼樺寲鐨勯鐩紝榪欓噷鏁寸悊鍑轟竴浜涜嚜宸卞啓鐨勪唬鐮侊紝鍙槸涓轟簡鍘? 鍒涚郴鍒楁枃绔犵殑瀹屾暣鎬с傝繖涓緋誨垪鏂囩珷鍒拌繖閲屽氨緇撴潫浜嗭紝甯屾湜澶у鑳芥湁鎵鏀惰幏銆?br>    Matrix67鍘熷垱錛岃漿璐磋娉ㄦ槑鍑哄銆?br><br><br> <blockquote>Problem : 璐硅В鐨勫紑鍏?br><br><a target="_blank"><strong> <font color="#618898">棰樼洰鏉ユ簮</font></strong> </a><br>    06 騫碞OIp妯℃嫙璧涳紙涓錛?by Matrix67 絎洓棰?br><br>闂鎻忚堪<br>    浣犵帺榪?#8220;鎷夌伅”娓告垙鍚楋紵25鐩忕伅鎺掓垚涓涓?×5鐨勬柟 褰€傛瘡涓涓伅閮芥湁涓涓紑鍏籌紝娓告垙鑰呭彲浠ユ敼鍙樺畠鐨勭姸鎬併傛瘡涓姝ワ紝娓告垙鑰呭彲浠ユ敼鍙樻煇涓涓伅鐨勭姸鎬併傛父鎴忚呮敼鍙樹竴涓伅鐨勭姸鎬佷細(xì)浜х敓榪為攣鍙嶅簲錛氬拰榪欎釜鐏笂涓嬪乏鍙崇浉 閭?cè)潥勭伅涔熻鐩稿簲鍦版敼鍙樺叾鐘舵併?br>    鎴戜滑鐢ㄦ暟瀛?#8220;1”琛ㄧず涓鐩忓紑鐫鐨勭伅錛岀敤鏁板瓧“0”琛ㄧず鍏崇潃鐨勭伅銆備笅闈㈣繖縐嶇姸鎬?br><br>10111<br>01101<br>10111<br>10000<br>11011<br><br>    鍦? 鏀瑰彉浜嗘渶宸︿笂瑙掔殑鐏殑鐘舵佸悗灝嗗彉鎴愶細(xì)<br><br>01111<br>11101<br>10111<br>10000<br>11011<br><br>    鍐? 鏀瑰彉瀹冩涓棿鐨勭伅鍚庣姸鎬佸皢鍙樻垚錛?br><br>01111<br>11001<br>11001<br>10100<br>11011<br><br>    緇? 瀹氫竴浜涙父鎴忕殑鍒濆鐘舵侊紝緙栧啓紼嬪簭鍒ゆ柇娓告垙鑰呮槸鍚﹀彲鑳藉湪6姝ヤ互鍐呬嬌鎵鏈夌殑鐏兘鍙樹寒銆?br><br>杈撳叆鏍煎紡<br>    絎竴琛屾湁涓涓鏁存暟n錛屼唬琛ㄦ暟 鎹腑鍏辨湁n涓緟瑙e喅鐨勬父鎴忓垵濮嬬姸鎬併?br>    浠ヤ笅鑻ュ共琛屾暟鎹垎涓簄緇勶紝姣忕粍鏁版嵁鏈?琛岋紝姣忚5涓瓧絎︺傛瘡緇勬暟鎹弿榪頒簡涓涓父鎴忕殑鍒濆鐘舵併傚悇緇勬暟 鎹棿鐢ㄤ竴涓┖琛屽垎闅斻?br>    瀵逛簬30%鐨勬暟鎹紝n<=5錛?br>    瀵逛簬100%鐨勬暟鎹紝n<=500銆?br><br>杈? 鍑烘牸寮?br>    杈撳嚭鏁版嵁涓鍏辨湁n琛岋紝姣忚鏈変竴涓皬浜庣瓑浜?鐨勬暣鏁幫紝瀹冭〃紺哄浜庤緭鍏ユ暟鎹腑瀵瑰簲鐨勬父鎴忕姸鎬佹渶灝戦渶瑕佸嚑姝ユ墠鑳戒嬌鎵鏈夌伅鍙樹寒銆?br>    瀵? 浜庢煇涓涓父鎴忓垵濮嬬姸鎬侊紝鑻?姝ヤ互鍐呮棤娉曚嬌鎵鏈夌伅鍙樹寒錛岃杈撳嚭“-1”銆?br><br>鏍蜂緥杈撳叆<br>3<br>00111<br>01011<br>10001<br>11010<br>11100<br><br>11101<br>11101<br>11110<br>11111<br>11111<br><br>01111<br>11111<br>11111<br>11111<br>11111<br><br>鏍? 渚嬭緭鍑?br>3<br>2<br>-1 <p> </p> </blockquote> <p><br><br>紼嬪簭浠g爜<br><code>const<br>   BigPrime=3214567;<br>   MaxStep=6;<br>type<br>   pointer=^rec;<br>   rec=record<br>         v:longint;<br>         step:integer;<br>         next:pointer;<br>       end;<br><br>var<br>   total:longint;<br>   hash:array[0..BigPrime-1]of pointer;<br>   q:array[1..400000]of rec;<br><br>function update(a:longint;p:integer):longint;<br>begin<br>   a:=a xor (1 shl p);<br>   if p mod 5<>0 then a:=a xor (1 shl (p-1));<br>   if (p+1) mod 5<>0 then a:=a xor (1 shl (p+1));<br>   if p<20 then a:=a xor (1 shl (p+5));<br>   if p>4 then a:=a xor (1 shl (p-5));<br>   exit(a);<br>end;<br><br>function find(a:longint;step:integer):boolean;<br>var<br>   now:pointer;<br>begin<br>   now:=hash[a mod BigPrime];<br>   while now<>nil do<br>   begin<br>      if now^.v=a then exit(true);<br>      now:=now^.next;<br>   end;<br><br>   new(now);<br>   now^.v:=a;<br>   now^.step:=step;<br>   now^.next:=hash[a mod BigPrime];<br>   hash[a mod BigPrime]:=now;<br>   total:=total+1;<br>   exit(false);<br>end;<br><br>procedure solve;<br>var<br>   p:integer;<br>   close:longint=0;<br>   open:longint=1;<br>begin<br>   find(1 shl 25-1,0);<br>   q[1].v:=1 shl 25-1;<br>   q[1].step:=0;<br>   repeat<br>      inc(close);<br>      for p:=0 to 24 do<br>         if not find(update(q[close].v,p),q[close].step+1) and (q[close].step+1<MaxStep) then<br>         begin<br>            open:=open+1;<br>            q[open].v:=update(q[close].v,p);<br>            q[open].step:=q[close].step+1;<br>         end;<br>   until close>=open;<br>end;<br><br>procedure print(a:longint);<br>var<br>   now:pointer;<br>begin<br>   now:=hash[a mod BigPrime];<br>   while now<>nil do<br>   begin<br>      if now^.v=a then<br>      begin<br>         writeln(now^.step);<br>         exit;<br>      end;<br>      now:=now^.next;<br>   end;<br>   writeln(-1);<br>end;<br><br>procedure main;<br>var<br>   ch:char;<br>   i,j,n:integer;<br>   t:longint;<br>begin<br>   readln(n);<br>   for i:=1 to n do<br>   begin<br>      t:=0;<br>      for j:=1 to 25 do<br>      begin<br>         read(ch);<br>         t:=t*2+ord(ch)-48;<br>         if j mod 5=0 then readln;<br>      end;<br>      print(t);<br>      if i<n then readln;<br>   end;<br>end;<br><br>begin<br>   solve;<br>   main;<br>end.</code><br><br><strong> =======================  鎬? 鎰熺殑鍒嗗壊綰?nbsp; =======================</strong> <br><br><br> </p> <blockquote>Problem : garden / 鍜孧M閫涜姳鍥?br><br>棰樼洰鏉ユ簮<br>    <a target="_blank"><strong> <font color="#618898">07騫碝atrix67鐢熸棩閭(gè)璇瘋禌</font></strong> </a>絎? 鍥涢<br><br>闂鎻忚堪<br>    鑺卞洯璁捐寮鴻皟錛岀畝鍗曞氨鏄編銆侻atrix67甯稿幓鐨勮姳鍥湁鐫闈炲父綆鍗曠殑甯冨眬錛氳姳鍥殑鎵鏈夋櫙鐐圭殑浣嶇疆閮芥槸“瀵? 榻?#8221;浜嗙殑錛岃繖浜涙櫙鐐瑰彲浠ョ湅浣滄槸騫抽潰鍧愭爣涓婄殑鏍肩偣銆傜浉閭?cè)潥勬櫙鐐逛箣闂存湁灏忚矾鐩笜q烇紝榪欎簺灝忚礬鍏ㄩ儴騫寵浜庡潗鏍囪醬銆傛櫙鐐瑰拰灝忚礬緇勬垚浜嗕竴涓?#8220;涓嶅畬鏁寸殑緗戞牸”銆?br>    涓 涓吀鍨嬬殑鑺卞洯甯冨眬濡傚乏鍥炬墍紺恒傝姳鍥竷灞鍦?琛?鍒楃殑緗戞牸涓婏紝鑺卞洯鐨?6涓櫙鐐圭殑浣嶇疆鐢ㄧ孩鑹叉爣娉ㄥ湪浜嗗浘涓傞粦鑹茬嚎鏉¤〃紺烘櫙鐐歸棿鐨勫皬璺紝鍏朵綑鐏拌壊閮ㄥ垎瀹為檯騫朵笉 瀛樺湪銆?br>        <img alt="" src="http://www.matrix67.com/data/prob4.gif" border="0"><br><br>    Matrix67 鐨勭敓鏃ラ偅澶╋紝浠栬甯︾潃浠栫殑MM鍦ㄨ姳鍥噷娓哥帺銆侻atrix67涓嶄細(xì)甯M涓ゆ緇忚繃鍚屼竴涓櫙鐐癸紝鍥犳姣忎釜鏅偣鏈澶氳娓歌涓嬈°備粬鍜屼粬鐨凪M杈硅蛋杈硅亰錛屼粬浠槸 濡傛鐨勬姇鍏ヤ互鑷翠簬浠栦滑浠庝笉浼?#8220;涓誨姩鍦版嫄寮?#8221;銆備篃灝辨槸璇達(dá)紝闄ら潪鍓嶆柟宸叉病鏈夋櫙鐐規(guī)垨鏄墠鏂圭殑鏅偣宸茬粡璁塊棶榪囷紝鍚﹀垯浠栦滑浼?xì)涓鐩村線鍓嶈蛋涓嬪幓銆傚綋鍓嶆柟鏅偣涓嶅瓨鍦ㄦ垨宸叉父 瑙堣繃鏃訛紝Matrix67浼?xì)甯M鍙﹂変竴涓柟鍚戠戶緇墠榪涖傜敱浜庢櫙鐐逛釜鏁版湁闄愶紝璁塊棶榪囩殑鏅偣灝嗚秺鏉ヨ秺澶氾紝榪熸棭浼?xì)鍑虹庮C笉鑳藉啀璧扮殑鎯呭喌錛堝嵆鍥涗釜鏂瑰悜涓婄殑鐩擱偦鏅偣 閮借闂繃浜嗭級錛屾鏃朵粬浠皢緇撴潫鑺卞洯鐨勬父瑙堛侻atrix67甯屾湜鐭ラ亾浠ヨ繖縐嶆柟寮忔父瑙堣姳鍥槸鍚︽湁鍙兘閬嶅巻鎵鏈夌殑鏅偣銆侻atrix67鍙互閫夋嫨浠庝換鎰忎竴涓櫙 鐐瑰紑濮嬫父瑙堬紝浠ヤ換鎰忎竴涓櫙鐐圭粨鏉熴?br>    鍦ㄤ笂鍥炬墍紺虹殑鑺卞洯甯冨眬涓紝涓縐嶅彲鑳界殑娓歌鏂瑰紡濡傚彸鍥炬墍紺恒傝繖縐嶆祻瑙堟柟寮忎粠(1,2)鍑哄彂錛屼互(2,4) 緇撴潫錛岀粡榪囨瘡涓櫙鐐規(guī)伆濂戒竴嬈°?br><br>杈撳叆鏍煎紡<br>    絎竴琛岃緭鍏ヤ袱涓敤絀烘牸闅斿紑鐨勬鏁存暟m鍜宯錛岃〃紺鴻姳鍥甯冨眬鍦╩琛宯鍒楃殑緗戞牸涓娿?br>    浠? 涓媘琛屾瘡琛宯涓瓧絎︼紝瀛楃“0”琛ㄧず璇ヤ綅緗病鏈夋櫙鐐癸紝瀛楃“1”琛ㄧず瀵瑰簲浣嶇疆鏈夋櫙鐐廣傝繖浜涙暟瀛椾箣闂存病鏈夌┖鏍箋?br><br>杈撳嚭鏍煎紡<br>    浣? 鐨勭▼搴忛渶瑕佸鎵炬弧瓚?#8220;涓嶄富鍔ㄦ嫄寮?#8221;鎬ц川涓旈亶鍘嗘墍鏈夋櫙鐐圭殑娓歌璺嚎銆?br>    濡傛灉娌℃湁榪欐牱鐨勬父瑙堣礬綰匡紝璇瘋緭鍑轟竴琛?#8220;Impossible”錛堜笉甯﹀紩 鍙鳳紝娉ㄦ剰澶у皬鍐欙級銆?br>    濡傛灉瀛樺湪娓歌璺嚎錛岃渚濇杈撳嚭浣犵殑鏂規(guī)涓闂殑鏅偣鐨勫潗鏍囷紝姣忚杈撳嚭涓涓傚潗鏍囩殑琛ㄧず鏍煎紡涓?#8220;(x,y)”錛屼唬琛ㄧx 琛岀y鍒椼?br>    濡傛灉鏈夊縐嶆柟妗堬紝浣犲彧闇瑕佽緭鍑哄叾涓竴縐嶅嵆鍙傝瘎嫻嬬郴緇熷彲浠ュ垽鏂綘鐨勬柟妗堢殑姝g‘鎬с?br><br>鏍蜂緥杈撳叆<br>6 4<br>1100<br>1001<br>1111<br>1100<br>1110<br>1110<br><br>鏍? 渚嬭緭鍑?br>(1,2)<br>(1,1)<br>(2,1)<br>(3,1)<br>(4,1)<br>(5,1)<br>(6,1)<br>(6,2)<br>(6,3)<br>(5,3)<br>(5,2)<br>(4,2)<br>(3,2)<br>(3,3)<br>(3,4)<br>(2,4)<br><br>鏁? 鎹妯?br>    瀵逛簬30%鐨勬暟鎹紝n,m<=5錛?br>    瀵逛簬100%鐨勬暟鎹紝n,m<=10銆? <p> </p> </blockquote> <p><br><br>紼嬪簭浠g爜錛?br><code>program garden;<br><br>const<br>   dir:array[1..4,1..2]of integer=<br>     ((1,0),(0,1),(-1,0),(0,-1));<br><br>type<br>   arr=array[1..10]of integer;<br>   rec=record x,y:integer;end;<br><br>var<br>   map:array[0..11,0..11]of boolean;<br>   ans:array[1..100]of rec;<br>   n,m,max:integer;<br>   step:integer=1;<br>   state:arr;<br><br>procedure readp;<br>var<br>   i,j:integer;<br>   ch:char;<br>begin<br>   readln(m,n);<br>   for i:=1 to n do<br>   begin<br>      for j:=1 to m do<br>      begin<br>         read(ch);<br>         map[i,j]:=(ch='1');<br>         inc(max,ord( map[i,j] ))<br>      end;<br>   readln;<br>   end;<br>end;<br><br>procedure writep;<br>var<br>   i:integer;<br>begin<br>   for i:=1 to step do<br>      writeln( '(' , ans[i].x , ',' , ans[i].y , ')' );<br>end;<br><br>procedure solve(x,y:integer);<br>var<br>   tx,ty,d:integer;<br>   step_cache:integer;<br>   state_cache:arr;<br>begin<br>   step_cache:=step;<br>   state_cache:=state;<br>   if step=max then<br>   begin<br>      writep;<br>      exit;<br>   end;<br><br>   for d:=1 to 4 do<br>   begin<br>      tx:=x+dir[d,1];<br>      ty:=y+dir[d,2];<br>      while map[tx,ty] and ( not state[tx] and(1 shl (ty-1) )>0) do<br>      begin<br>         inc(step);<br>         ans[step].x:=tx;<br>         ans[step].y:=ty;<br>         state[tx]:=state[tx] or ( 1 shl (ty-1) );<br>         tx:=tx+dir[d,1];<br>         ty:=ty+dir[d,2];<br>      end;<br><br>      tx:=tx-dir[d,1];<br>      ty:=ty-dir[d,2];<br>      if (tx<>x) or (ty<>y) then solve(tx,ty);<br>      state:=state_cache;<br>      step:=step_cache;<br>   end;<br>end;<br><br>{====main====}<br>var<br>   i,j:integer;<br>begin<br>   assign(input,'garden.in');<br>   reset(input);<br>   assign(output,'garden.out');<br>   rewrite(output);<br><br>   readp;<br>   for i:=1 to n do<br>   for j:=1 to m do<br>     if map[i,j] then<br>     begin<br>        ans[1].x:=i;<br>        ans[1].y:=j;<br>        state[i]:=1 shl (j-1);<br>        solve(i,j);<br>        state[i]:=0;<br>     end;<br><br>   close(input);<br>   close(output);<br>end.</code><br><br><strong> =======================  鎬? 鎰熺殑鍒嗗壊綰?nbsp; =======================</strong> <br><br><br> </p> <blockquote>Problem : cowfood / 鐜夌背鍦?br><br>棰樼洰鏉ユ簮<br>    USACO鏈堣禌<br><br>闂? 棰樻弿榪?br>    鍐滃か綰︾堪璐拱浜嗕竴澶勮偉娌冪殑鐭╁艦鐗у満錛屽垎鎴怣*N(1<=M<=12; 1<=N<=12)涓牸瀛愩備粬鎯沖湪閭i噷鐨勪竴浜涙牸瀛愪腑縐嶆緹庡懗鐨勭帀綾熾傞仐鎲劇殑鏄紝鏈変簺鏍煎瓙鍖哄煙鐨勫湡鍦版槸璐槧鐨勶紝涓嶈兘鑰曠銆?br>    綺炬槑 鐨勭害緲扮煡閬撳ザ鐗涗滑榪涢鏃朵笉鍠滄鍜屽埆鐨勭墰鐩擱偦錛屾墍浠ヤ竴鏃﹀湪涓涓牸瀛愪腑縐嶆鐜夌背錛岄偅涔堜粬灝變笉浼?xì)鍦ㄧ洈R偦鐨勬牸瀛愪腑縐嶆錛屽嵆娌℃湁涓や釜琚変腑鐨勬牸瀛愭嫢鏈夊叕鍏辮竟銆備粬榪樻病 鏈夋渶緇堢‘瀹氬摢浜涙牸瀛愯閫夋嫨縐嶆鐜夌背銆?br>    浣滀負(fù)涓涓濇兂寮鏄庣殑浜猴紝鍐滃か綰︾堪甯屾湜鑰冭檻鎵鏈夊彲琛岀殑閫夋嫨鏍煎瓙縐嶆鏂規(guī)銆傜敱浜庡お寮鏄庯紝浠栬繕鑰冭檻涓涓牸瀛? 閮戒笉閫夋嫨鐨勭妞嶆柟妗堬紒璇峰府鍔╁啘澶害緲扮‘瀹氱妞嶆柟妗堟繪暟銆?br><br>杈撳叆鏍煎紡:<br>    絎竴琛岋細(xì)涓や釜鐢ㄧ┖鏍煎垎闅旂殑鏁存暟M鍜孨<br>    絎? 浜岃鍒扮M+1琛岋細(xì)絎琲+1琛屾弿榪扮墽鍦虹i琛屾瘡涓牸瀛愮殑鎯呭喌錛孨涓敤絀烘牸鍒嗛殧鐨勬暣鏁幫紝琛ㄧず榪欎釜鏍煎瓙鏄惁鍙互縐嶆錛?琛ㄧず鑲ユ矁鐨勩侀傚悎縐嶆錛?琛ㄧず璐槧鐨勩? 涓嶅彲縐嶆錛?br><br>杈撳嚭鏍煎紡<br>    涓涓暣鏁幫紝鍐滃か綰︾堪鍙夋嫨鐨勬柟妗堟繪暟闄や互 100,000,000 鐨勪綑鏁?br><br>鏍蜂緥杈撳叆<br>2 3<br>1 1 1<br>0 1 0<br><br>鏍蜂緥杈撳嚭<br>9<br><br>鏍蜂緥璇存槑<br><br>    緇欏彲浠ョ妞嶇帀綾崇殑鏍煎瓙緙? 鍙鳳細(xì)<br>      1 2 3<br>        4<br><br>    鍙? 縐嶄竴涓牸瀛愮殑鏂規(guī)鏈夊洓縐?1,2,3鎴?)錛岀妞嶄袱涓牸瀛愮殑鏂規(guī)鏈変笁縐?13,14鎴?4)錛岀妞嶄笁涓牸瀛愮殑鏂規(guī)鏈変竴縐?134)錛岃繕鏈変竴縐嶄粈涔堟牸瀛愰兘涓? 縐嶃?br>    4+3+1+1=9銆?br><br>鏁版嵁瑙勬ā<br>    瀵逛簬30%鐨勬暟鎹紝N,M<=4錛?br>    瀵逛簬 100%鐨勬暟鎹紝N,M<=12銆? <p> </p> </blockquote> <p><br><br>紼嬪簭浠g爜錛?br><code>program cowfood;<br><br>const<br>   d=100000000;<br>   MaxN=12;<br><br>var<br>   f:array[0..MaxN,1..2000]of longint;<br>   w:array[1..2000,1..2000]of boolean;<br>   st:array[0..2000]of integer;<br>   map:array[0..MaxN]of integer;<br>   m,n:integer;<br><br>function Impossible(a:integer):boolean;<br>var<br>   i:integer;<br>   flag:boolean=false;<br>begin<br>   for i:=1 to MaxN do<br>   begin<br>      if flag and (a and 1=1) then exit(true);<br>      flag:=(a and 1=1);<br>      a:=a shr 1;<br>   end;<br>   exit(false);<br>end;<br><br>function Conflict(a,b:integer):boolean;<br>var<br>   i:integer;<br>begin<br>   for i:=1 to MaxN do<br>   begin<br>      if (a and 1=1) and (b and 1=1) then exit(true);<br>      a:=a shr 1;<br>      b:=b shr 1;<br>   end;<br>   exit(false);<br>end;<br><br>function CanPlace(a,b:integer):boolean;<br>begin<br>   exit(a or b=b);<br>end;<br><br>procedure FindSt;<br>var<br>   i:integer;<br>begin<br>   for i:=0 to 1 shl MaxN-1 do<br>      if not Impossible(i) then<br>      begin<br>         inc(st[0]);<br>         st[st[0]]:=i;<br>      end;<br>end;<br><br>procedure Init;<br>var<br>   i,j:integer; <br>begin<br>   for i:=1 to st[0] do<br>   for j:=i to st[0] do<br>      if not Conflict(st[i],st[j]) then<br>      begin<br>         w[i,j]:=true;<br>         w[j,i]:=true;<br>      end;<br>end;<br><br>procedure Readp;<br>var<br>   i,j,t,v:integer;<br>begin<br>   readln(m,n);<br>   for i:=1 to m do<br>   begin<br>      v:=0;<br>      for j:=1 to n do<br>      begin<br>         read(t);<br>         v:=v*2+t;<br>      end;<br>      map[i]:=v;<br>      readln;<br>   end;<br>end;<br><br>procedure Solve;<br>var<br>   i,j,k:integer;<br>begin<br>   f[0,1]:=1;<br>   map[0]:=1 shl n-1;<br>   for i:=1 to m do<br>   for j:=1 to st[0] do<br>      if not CanPlace(st[j],map[i]) then f[i,j]:=-1 else<br>        for k:=1 to st[0] do if (f[i-1,k]<>-1) and w[j,k] then<br>           f[i,j]:=(f[i,j]+f[i-1,k]) mod d;<br>end;<br><br>procedure Writep;<br>var<br>   j:integer;<br>   ans:longint=0;<br>begin<br>   for j:=1 to st[0] do<br>      if f[m,j]<>-1 then ans:=(ans+f[m,j]) mod d;<br>   writeln(ans);<br>end;<br><br>begin<br>   assign(input,'cowfood.in');<br>   reset(input);<br>   assign(output,'cowfood.out');<br>   rewrite(output);<br><br>   FindSt;<br>   Init;<br>   Readp;<br>   Solve;<br>   Writep;<br><br>   close(input);<br>   close(output);<br>end.</code></p> <br> <img src ="http://m.shnenglu.com/yuqilin1228/aggbug/110616.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/yuqilin1228/" target="_blank">LynnRaymond</a> 2010-03-26 21:48 <a href="http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110616.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title><b>銆愯漿杞戒箣VC++銆戝埄鐢╒isual C++鍒朵綔搴旂敤紼嬪簭鍚姩鐢婚潰</b>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110615.htmlLynnRaymondLynnRaymondFri, 26 Mar 2010 13:44:00 GMThttp://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110615.htmlhttp://m.shnenglu.com/yuqilin1228/comments/110615.htmlhttp://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110615.html#Feedback0http://m.shnenglu.com/yuqilin1228/comments/commentRss/110615.htmlhttp://m.shnenglu.com/yuqilin1228/services/trackbacks/110615.html http://edu.itbulo.com

鎽樿 錛? 鏈枃鎻愪緵浜嗗洓縐嶅惎鍔ㄧ敾闈㈠埗浣滄柟娉曘?br>
銆銆浣跨敤鍚姩鐢婚潰涓鏄彲浠ュ噺灝戠瓑寰呯▼搴忓姞杞借繃紼嬩腑鐨勬灟鐕ユ劅錛堝挨鍏舵槸涓浜涘ぇ鍨嬬▼搴忥級錛涗簩鏄彲浠ョ敤鏉ユ樉紺鴻蔣 浠跺悕縐板拰鐗堟潈絳夋彁紺轟俊鎭傛庢牱浣跨敤VC++鍒朵綔搴旂敤紼嬪簭鐨勫惎鍔ㄧ敾闈㈠憿錛熸湰鏂囨彁渚涘洓縐嶆柟娉曪紝鍓嶄笁縐嶉傜敤浜庡熀浜庢枃妗g殑搴旂敤紼嬪簭錛岀鍥涚閫傜敤浜庡熀浜庡璇濇鐨勫簲鐢? 紼嬪簭銆?br>
銆銆 1.鍒╃敤緇勪歡搴撲腑鐨凷plash Screen緇勪歡瀹炵幇

銆銆(1)鐢? Photoshop絳夊埗浣滃惎鍔ㄧ敾闈㈠浘鍍忥紝淇濆瓨涓篵mp鏍煎紡銆?br>
銆銆(2)鐢ˋppwizard寤轟竴涓熀浜庡崟鏂囨。鐨勫伐紼婼plash銆?br>
(3)鍦ㄨ祫婧愪腑鎻掑叆浣嶅浘璧勬簮

銆銆鎵撳紑VC++鐨勮祫婧愮紪杈戝櫒錛岀敤榧犳爣鍙抽敭鍗曞嚮Resources鏂囦歡澶癸紝閫夋嫨Import鍛戒護(hù)錛屾彃鍏ユ墍鍒? 浣滅殑浣嶅浘銆傚鏋滀綅鍥捐秴榪?56鑹詫紝VC浼?xì)寮瑰囖Z竴涓璇濇錛屾彁紺轟綅鍥懼凡緇忔彃鍏ヤ絾涓嶈兘鍦ㄤ綅鍥劇紪杈戝櫒涓樉紺猴紝紜畾鍗沖彲銆傚皢浣嶅浘ID鏀逛負(fù)IDB_SPLASH銆?

(4)娣誨姞Splash Screen鎺т歡

銆銆鈶犻夋嫨鑿滃崟“project”/“Add To Project”/“Conponents and Controls”鎵撳紑瀵硅瘽妗嗭紝鍦ㄥ垪琛ㄦ涓弻鍑?#8220;Visual C++ Conponents”閫夐」錛岄夋嫨“Splash Screen”鎺т歡錛岀劧鍚庡崟鍑?#8220;Insert”銆?br>
銆銆鈶$‘璁ゆ垨淇敼綾誨悕鍜屼綅鍥捐祫婧? ID錛屽崟鍑籓K紜銆?br>
銆銆鈶㈢紪璇戙佽繛鎺ワ紝婕備寒鐨勫惎鍔ㄧ敾闈㈠氨鏄劇ず鍑烘潵浜嗐?br>
銆銆(5)濡傛灉闇瑕佹敼鍙樺惎鍔ㄧ敾闈㈢殑鍋滅暀鏃墮棿錛屽氨淇? 鏀筍etTimer()鍑芥暟鐨勭浜屼釜鍙傛暟錛岄粯璁ゆ槸750 姣銆傝鍑芥暟鎵鍦ㄤ綅緗細(xì)
int CSplashWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{

銆// Set a timer to destroy the splash screen.
銆SetTimer(1, 750, NULL); //淇敼絎簩涓弬鏁頒互璋冩暣鐢婚潰鍋滅暀鏃墮棿
銆return 0;
}
2.鍒╃敤鏃犳ā寮忓璇濇鏄劇ず鍚姩鐢婚潰

銆銆(1)鐢ˋppwizard寤轟竴涓熀浜庡崟鏂囨。鐨勫伐紼? Splash銆?br>
銆銆(2)瀵煎叆鐢ㄤ綔鍚姩鐢婚潰鐨勫浘鐗囷紝鏇存敼ID涓篒DB_SPLASH銆?br>
銆銆(3)鏂板緩涓涓璇濇錛屽湪鍏朵腑 娣誨姞鍚姩鐢婚潰銆?br>
銆銆鍦ㄨ祫婧愪腑鏂板緩涓涓璇濇錛屽垱寤哄璇濇綾籆SplashDlg銆傚湪瀵硅瘽妗嗕腑娣誨姞涓涓狿icture鎺т歡錛屾墦寮鍏? “Properties”瀵硅瘽妗嗭紝閫? General錛屽湪Type涓嬫媺鍒楄〃涓夋嫨Bitmap錛屽湪Image涓嬫媺鍒楄〃涓夊墠闈㈠鍏ョ殑浣嶅浘璧勬簮ID鍊鹼細(xì)IDB_SPLASH銆?br>
(4)淇敼瀵硅瘽妗嗙殑鏄劇ず鏁堟灉

銆銆鈶犺皟鏁村璇濇澶у皬錛屽幓鎺変袱涓嚜鍔ㄧ敓鎴愮殑鎸夐挳錛屽茍鍦?#8220;Properties”鐨?#8220;Styles”欏典腑鍘繪帀 瀵筎itle bar鐨勯夊彇錛?br>
銆銆鈶¢変腑鍥懼儚錛岃皟鏁村ぇ灝忎嬌涔嬮傚簲瀵硅瘽妗嗙殑鍙紪杈戝尯錛屼慨鏀瑰叾“Properties”鐨?#8220;Styles”浣? 涔嬪眳涓?br>
銆銆(5)鍦–MainFrame綾葷殑OnCreate()鍑芥暟涓坊鍔犲垱寤恒佹樉紺哄茍閿姣佹棤妯″紡瀵硅瘽妗嗙殑浠g爜銆?br>
#include “SplashDlg.h” //鍔犲埌MainFrm.cpp鏂囦歡鐨勫ご鏂囦歡璋冪敤閮ㄤ綅
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
銆CSplashDlg *dlg = new CSplashDlg(this);
銆dlg->Create(CSplashDlg::IDD,this); //鍒涘緩瀵硅瘽妗?br>銆dlg->ShowWindow(SW_SHOW); //鏄劇ず瀵硅瘽妗?br>銆dlg->UpdateWindow();
銆Sleep(2000); //鐢婚潰鏄劇ず鍋滅暀鏃墮棿錛屽崟浣嶄負(fù)姣
銆…
銆dlg->DestroyWindow(); //閿姣佸璇濇
銆return 0;

3.閫氳繃鍙戦佹秷鎭樉紺哄拰閿姣佸惎鍔ㄧ敾闈?br>
銆銆鈶犻噸澶嶆柟娉曚簩鐨勬楠?鑷蟲楠?銆?br>
銆銆鈶′嬌鐢? Class Wizard涓篊MainFrame綾繪坊鍔犳秷鎭搷搴斿嚱鏁癢M_TIMER銆?br>
銆銆鈶?淇敼浠g爜錛岄氳繃鍙戦乄M_TIMER娑堟伅 鍚姩鍜岄攢姣佸惎鍔ㄧ敾闈?br>
銆銆1錛夊畾涔夊璇濇綾葷殑鍙橀噺

銆銆鍦∕ainFrm.h鏂囦歡澶撮儴娣誨姞#include "SplashDlg.h"錛屽茍鍦–MainFram綾葷殑瀹氫箟涓姞涓婂叕鐢ㄥ彉閲廋SplashDlg *Splash銆?br>
銆銆2錛夋坊鍔犺鏃跺櫒 娑堟伅鐩稿簲鍑芥暟浠g爜
void CMainFrame::OnTimer(UINT nIDEvent) 
{
銆if(Splash->IsWindowVisible()){
銆銆Splash->SetActiveWindow(); //鎶婂惎鍔ㄧ敾闈㈣緗負(fù)褰撳墠媧誨姩紿楀彛
銆銆Splash->UpdateWindow();
銆銆Sleep(2000); //淇敼姝ゅ鍙洿鏀圭敾闈㈡樉紺烘椂闂?br>銆銆Splash->SendMessage(WM_CLOSE); //鍏抽棴瀵硅瘽妗?br>銆}
銆else{
銆銆SetActiveWindow();
銆銆KillTimer(1) ; //娓呴櫎WM_TIMER浜嬩歡
銆}
}

銆3錛変慨鏀規(guī)鏋剁敓鎴愬嚱鏁癘nCreate()
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
銆SetTimer(1,0,NULL); //娣誨姞ID涓?鐨刉M_TIMER浜? 浠?br>銆Splash=new CSplashDlg();
銆Splash->Create(IDD_DIALOG1);
銆Splash->ShowWindow(SW_SHOW);
銆…

4.鍒朵綔鍩轟簬瀵硅瘽妗嗙殑搴旂敤紼嬪簭鍚姩鐢婚潰

銆銆浠ヤ笂鍑犵鏂規(guī)硶閮戒笉鑳界粰鍩轟簬瀵硅瘽妗嗙殑搴旂敤紼嬪簭鍋氬惎鍔ㄧ敾闈紝涓? 闈粙緇嶄竴縐嶆柟娉曠粰鍩轟簬瀵硅瘽妗嗙殑搴旂敤紼嬪簭鍋氬惎鍔ㄧ敾闈€傚熀浜庡璇濇鐨勫簲鐢ㄧ▼搴忔病鏈変富妗嗘灦錛屽洜姝や笉鑳介噰鐢ㄥ墠闈㈠嚑縐嶆柟娉曞埗浣滃惎鍔ㄧ敾闈€備笉榪囨垜浠彲浠ユ妸鏂規(guī)硶涓寤虹珛璧? 鐨勫惎鍔ㄧ敾闈㈡枃浠剁Щ妞嶈繃鏉ワ紝鐒跺悗錛屽紼嬪簭榪涜涓浜涗慨鏀廣?

銆銆(1)鍙傜収鏂規(guī)硶涓寤虹珛鍩轟簬鍗曟枃妗g殑宸ョ▼Splash銆?br>
(2)寤虹珛鍩轟簬瀵硅瘽妗嗙殑宸ョ▼Cover銆?br>
銆銆(3)鏂囦歡縐繪

銆銆鈶犲皢Splash1.cpp 鍜孲plash1.h 涓や釜鏂囦歡浠庢柟娉曚竴寤虹珛鐨凷plash宸ョ▼鎷瘋礉鍒癈over宸ョ▼涓紝騫朵笖鍒嗗埆鍔犲叆鍒癝ource Files鍜孒eader Files涓紱

鈶″鍏ヤ綅鍥炬枃浠跺埌宸ョ▼鐨勮祫婧愪腑錛屾敼ID涓篒DB_SPLASH銆?br>
銆銆(4)淇敼浠g爜錛屽疄鐜板惎鍔ㄧ敾闈㈢殑璋冪敤

銆銆鈶犳坊鍔? CCoverApp 鐨処nitInstance() 鍑芥暟浠g爜
#include "Splash1.h" //鍔犲湪Cover.cpp鏂囦歡鐨勫ご鏂囦歡璋冪敤閮ㄤ綅
BOOL CCoverApp::InitInstance()
{
銆CCommandLineInfo cmdInfo;
銆ParseCommandLine(cmdInfo);
銆CSplashWnd::EnableSplashScreen(cmdInfo.m_bShowSplash);



鈶′嬌鐢–lassWizard 娣誨姞OnCreate() 鍑芥暟鍒板璇濇綾籆CoverDlg涓紝騫朵慨鏀逛唬鐮?br>
#include "Splash1.h" //鍔犲湪CoverDlg.cpp鏂囦歡鐨勫ご鏂囦歡璋冪敤閮ㄤ綅
int CCoverDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{

銆CSplashWnd::ShowSplashScreen(this); //鏄劇ず鍚姩鐢婚潰

}

璇存槑錛氬惎鍔ㄧ敾闈㈠仠鐣欐椂闂寸殑淇敼鍚屾柟娉曚竴銆?br>
銆銆 5.緇撴潫璇?/strong>

銆銆姝e鍓嶉潰鎻愯繃 鐨勶紝榪愮敤濂藉惎鍔ㄧ敾闈㈠彲浠ョ粰浣跨敤鑰呯暀涓嬩竴涓己鐑堢殑鍗拌薄錛岃搗鍒板緢濂界殑瀹d紶浣滅敤錛屼互涓婄▼搴忓潎鍦╒isual C++ 6.0銆乄indows2000璋冭瘯閫氳繃銆?


]]>
<b>銆愯漿杞戒箣VC++銆慥isual C++ 鍏ラ棬綺捐В</b>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110614.htmlLynnRaymondLynnRaymondFri, 26 Mar 2010 13:41:00 GMThttp://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110614.htmlhttp://m.shnenglu.com/yuqilin1228/comments/110614.htmlhttp://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110614.html#Feedback0http://m.shnenglu.com/yuqilin1228/comments/commentRss/110614.htmlhttp://m.shnenglu.com/yuqilin1228/services/trackbacks/110614.html闃呰鍏ㄦ枃

]]>
銆怌++甯歌瘑銆慍/C++澶存枃浠朵竴瑙?/title><link>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110613.html</link><dc:creator>LynnRaymond</dc:creator><author>LynnRaymond</author><pubDate>Fri, 26 Mar 2010 13:39:00 GMT</pubDate><guid>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110613.html</guid><wfw:comment>http://m.shnenglu.com/yuqilin1228/comments/110613.html</wfw:comment><comments>http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110613.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/yuqilin1228/comments/commentRss/110613.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/yuqilin1228/services/trackbacks/110613.html</trackback:ping><description><![CDATA[<strong> <font size="2">C銆佷紶緇?C++<br><br>#include <assert.h>銆銆銆銆//璁懼畾鎻掑叆鐐?br>#include <ctype.h>銆銆銆銆 //瀛楃澶勭悊<br>#include <errno.h>銆銆銆銆 //瀹氫箟閿欒鐮?br>#include <float.h>銆銆銆銆 //嫻偣鏁板鐞?br>#include <fstream.h>銆銆銆 //鏂囦歡杈撳叆錛忚緭鍑?br>#include <iomanip.h> //鍙傛暟鍖栬緭鍏ワ紡杈撳嚭<br>#include <iostream.h>銆銆銆//鏁版嵁嫻佽緭鍏ワ紡杈撳嚭<br>#include <limits.h>銆銆銆銆//瀹氫箟鍚勭鏁版嵁綾誨瀷鏈鍊煎父閲?br>#include <locale.h>銆銆銆銆//瀹氫箟鏈湴鍖栧嚱鏁?br>#include <math.h>銆銆銆銆銆//瀹氫箟鏁板鍑芥暟<br>#include <stdio.h>銆銆銆銆 //瀹氫箟杈撳叆錛忚緭鍑哄嚱鏁?br>#include <stdlib.h>銆銆銆銆//瀹氫箟鏉傞」鍑芥暟鍙?qiáng)鍐呭瓨鍒嗛厤鍑芥?br>#include <string.h>銆銆銆銆//瀛楃涓插鐞?br>#include <strstrea.h>銆銆銆//鍩轟簬鏁扮粍鐨勮緭鍏ワ紡杈撳嚭<br>#include <time.h>銆銆銆銆銆//瀹氫箟鍏充簬鏃墮棿鐨勫嚱鏁?br>#include <wchar.h> //瀹藉瓧絎﹀鐞嗗強(qiáng)杈撳叆錛忚緭鍑?br>#include <wctype.h>銆銆銆銆//瀹藉瓧絎﹀垎綾?br><br>//////////////////////////////////////////////////////////////////////////<br><br>鏍? 鍑?C++銆錛堝悓涓婄殑涓嶅啀娉ㄩ噴錛?br><br>#include <algorithm>銆銆銆 //STL 閫氱敤綆楁硶<br>#include <bitset>銆銆銆銆銆//STL 浣嶉泦瀹瑰櫒<br>#include <cctype><br>#include <cerrno><br>#include <clocale><br>#include <cmath><br>#include <complex>銆銆銆銆 //澶嶆暟綾?br>#include <cstdio><br>#include <cstdlib><br>#include <cstring><br>#include <ctime><br>#include <deque>銆銆銆銆銆 //STL 鍙岀闃熷垪瀹瑰櫒<br>#include <exception> //寮傚父澶勭悊綾?br>#include <fstream><br>#include <functional>銆銆銆//STL 瀹氫箟榪愮畻鍑芥暟錛堜唬鏇胯繍綆楃錛?br>#include <limits><br>#include <list>銆銆銆銆銆銆//STL 綰挎у垪琛ㄥ鍣?br>#include <map>銆銆銆銆銆銆 //STL 鏄犲皠瀹瑰櫒<br>#include <iomanip><br>#include <ios>銆銆銆銆銆銆 //鍩烘湰杈撳叆錛忚緭鍑烘敮鎸?br>#include <iosfwd>銆銆銆銆銆//杈撳叆錛忚緭鍑虹郴緇熶嬌鐢ㄧ殑鍓嶇疆澹版槑<br>#include <iostream><br>#include <istream>銆銆銆銆 //鍩烘湰杈撳叆嫻?br>#include <ostream>銆銆銆銆 //鍩烘湰杈撳嚭嫻?br>#include <queue>銆銆銆銆銆 //STL 闃熷垪瀹瑰櫒<br>#include <set>銆銆銆銆銆銆 //STL 闆嗗悎瀹瑰櫒<br>#include <sstream>銆銆銆銆 //鍩轟簬瀛楃涓茬殑嫻?br>#include <stack>銆銆銆銆銆 //STL 鍫嗘爤瀹瑰櫒銆銆銆銆<br>#include <stdexcept>銆銆銆 //鏍囧噯寮傚父綾?br>#include <streambuf>銆銆銆 //搴曞眰杈撳叆錛忚緭鍑烘敮鎸?br>#include <string>銆銆銆銆銆//瀛楃涓茬被<br>#include <utility>銆銆銆銆 //STL 閫氱敤妯℃澘綾?br>#include <vector>銆銆銆銆銆//STL 鍔ㄦ佹暟緇勫鍣?br>#include <cwchar><br>#include <cwctype><br><br>using namespace std;<br><br>//////////////////////////////////////////////////////////////////////////<br><br>C99 澧炲姞<br><br>#include <complex.h>銆銆 //澶嶆暟澶勭悊<br>#include <fenv.h>銆銆銆銆//嫻偣鐜<br>#include <inttypes.h>銆銆//鏁存暟鏍煎紡杞崲<br>#include <stdbool.h>銆銆 //甯冨皵鐜<br>#include <stdint.h>銆銆銆//鏁村瀷鐜<br>#include <tgmath.h>銆銆銆//閫氱敤綾誨瀷鏁板瀹?/font>C/C++ 澶存枃浠朵竴瑙?br><!----><br></strong> <font size="2"><strong> C銆佷紶緇?C++<br><br>#include <assert.h>銆銆銆銆//璁懼畾鎻掑叆鐐?br>#include <ctype.h>銆銆銆銆 //瀛楃澶勭悊<br>#include <errno.h>銆銆銆銆 //瀹氫箟閿欒鐮?br>#include <float.h>銆銆銆銆 //嫻偣鏁板鐞?br>#include <fstream.h>銆銆銆 //鏂囦歡杈撳叆錛忚緭鍑?br>#include <iomanip.h>銆銆銆 //鍙傛暟鍖栬緭鍏ワ紡杈撳嚭<br>#include <iostream.h>銆銆銆//鏁版嵁嫻佽緭鍏ワ紡杈撳嚭<br>#include <limits.h>銆銆銆銆//瀹氫箟鍚勭鏁版嵁綾誨瀷鏈鍊煎父閲?br>#include <locale.h>銆銆銆銆//瀹氫箟鏈湴鍖栧嚱鏁?br>#include <math.h>銆銆銆銆銆//瀹氫箟鏁板鍑芥暟<br>#include <stdio.h>銆銆銆銆 //瀹氫箟杈撳叆錛忚緭鍑哄嚱鏁?br>#include <stdlib.h>銆銆銆銆//瀹氫箟鏉傞」鍑芥暟鍙?qiáng)鍐呭瓨鍒嗛厤鍑芥?br>#include <string.h>銆銆銆銆//瀛楃涓插鐞?br>#include <strstrea.h>銆銆銆//鍩轟簬鏁扮粍鐨勮緭鍏ワ紡杈撳嚭<br>#include <time.h>銆銆銆銆銆//瀹氫箟鍏充簬鏃墮棿鐨勫嚱鏁?br>#include <wchar.h> //瀹藉瓧絎﹀鐞嗗強(qiáng)杈撳叆錛忚緭鍑?br>#include <wctype.h>銆銆銆銆//瀹藉瓧絎﹀垎綾?br><br>//////////////////////////////////////////////////////////////////////////<br><br>鏍? 鍑?C++銆錛堝悓涓婄殑涓嶅啀娉ㄩ噴錛?br><br>#include <algorithm>銆銆銆 //STL 閫氱敤綆楁硶<br>#include <bitset>銆銆銆銆銆//STL 浣嶉泦瀹瑰櫒<br>#include <cctype><br>#include <cerrno><br>#include <clocale><br>#include <cmath><br>#include <complex>銆銆銆銆 //澶嶆暟綾?br>#include <cstdio><br>#include <cstdlib><br>#include <cstring><br>#include <ctime><br>#include <deque>銆銆銆銆銆 //STL 鍙岀闃熷垪瀹瑰櫒<br>#include <exception> //寮傚父澶勭悊綾?br>#include <fstream><br>#include <functional>銆銆銆//STL 瀹氫箟榪愮畻鍑芥暟錛堜唬鏇胯繍綆楃錛?br>#include <limits><br>#include <list>銆銆銆銆銆銆//STL 綰挎у垪琛ㄥ鍣?br>#include <map>銆銆銆銆銆銆 //STL 鏄犲皠瀹瑰櫒<br>#include <iomanip><br>#include <ios>銆銆銆銆銆銆 //鍩烘湰杈撳叆錛忚緭鍑烘敮鎸?br>#include <iosfwd>銆銆銆銆銆//杈撳叆錛忚緭鍑虹郴緇熶嬌鐢ㄧ殑鍓嶇疆澹版槑<br>#include <iostream><br>#include <istream>銆銆銆銆 //鍩烘湰杈撳叆嫻?br>#include <ostream>銆銆銆銆 //鍩烘湰杈撳嚭嫻?br>#include <queue>銆銆銆銆銆 //STL 闃熷垪瀹瑰櫒<br>#include <set>銆銆銆銆銆銆 //STL 闆嗗悎瀹瑰櫒<br>#include <sstream>銆銆銆銆 //鍩轟簬瀛楃涓茬殑嫻?br>#include <stack>銆銆銆銆銆 //STL 鍫嗘爤瀹瑰櫒銆銆銆銆<br>#include <stdexcept>銆銆銆 //鏍囧噯寮傚父綾?br>#include <streambuf>銆銆銆 //搴曞眰杈撳叆錛忚緭鍑烘敮鎸?br>#include <string>銆銆銆銆銆//瀛楃涓茬被<br>#include <utility>銆銆銆銆 //STL 閫氱敤妯℃澘綾?br>#include <vector>銆銆銆銆銆//STL 鍔ㄦ佹暟緇勫鍣?br>#include <cwchar><br>#include <cwctype><br><br>using namespace std;<br><br>//////////////////////////////////////////////////////////////////////////<br><br>C99 澧炲姞<br><br>#include <complex.h>銆銆 //澶嶆暟澶勭悊<br>#include <fenv.h>銆銆銆銆//嫻偣鐜<br>#include <inttypes.h>銆銆//鏁存暟鏍煎紡杞崲<br>#include <stdbool.h>銆銆 //甯冨皵鐜<br>#include <stdint.h>銆銆銆//鏁村瀷鐜<br>#include <tgmath.h>銆銆銆//閫氱敤綾誨瀷鏁板瀹?/strong> </font><br> <br> <img src ="http://m.shnenglu.com/yuqilin1228/aggbug/110613.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/yuqilin1228/" target="_blank">LynnRaymond</a> 2010-03-26 21:39 <a href="http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110613.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://987kt.com" target="_blank">国内外成人免费视频</a>| <a href="http://107766a.com" target="_blank">久久亚洲精品视频</a>| <a href="http://wwwmiya118.com" target="_blank">99re亚洲国产精品</a>| <a href="http://xshgwy.com" target="_blank">亚洲国产精品免费</a>| <a href="http://www-4890.com" target="_blank">麻豆精品91</a>| <a href="http://mauhorng.com" target="_blank">久久不射中文字幕</a>| <a href="http://7628x.com" target="_blank">国产一区二区三区免费不卡</a>| <a href="http://gzpurefaith.com" target="_blank">亚洲一区二区三区中文字幕 </a>| <a href="http://nnnn34.com" target="_blank">欧美特黄一级大片</a>| <a href="http://wwwby2232.com" target="_blank">欧美成人中文字幕在线</a>| <a href="http://sz-jyqj.com" target="_blank">欧美日韩国产综合视频在线</a>| <a href="http://a6a3.com" target="_blank">欧美激情中文字幕一区二区</a>| <a href="http://1515t.com" target="_blank">国产精品久久久久999</a>| <a href="http://4446666.com" target="_blank">亚洲综合清纯丝袜自拍</a>| <a href="http://66666556.com" target="_blank">欧美尤物一区</a>| <a href="http://pgd857.com" target="_blank">日韩视频在线观看</a>| <a href="http://kakatok.com" target="_blank">亚洲精品乱码久久久久</a>| <a href="http://www47011.com" target="_blank">亚洲国产日韩美</a>| <a href="http://pigkrtv.com" target="_blank">亚洲国产网站</a>| <a href="http://123086.com" target="_blank">亚洲美女中出</a>| <a href="http://666777v3.com" target="_blank">99视频精品</a>| <a href="http://576193.com" target="_blank">亚洲一区二区在线</a>| <a href="http://hgx123.com" target="_blank">亚洲国产一区二区三区在线播 </a>| <a href="http://sdjinchuan.com" target="_blank">国产欧美日韩在线</a>| <a href="http://s0247.com" target="_blank">国内精品久久久久久影视8</a>| <a href="http://taoseav8.com" target="_blank">在线成人国产</a>| <a href="http://xaxkizlar.com" target="_blank">亚洲影音一区</a>| <a href="http://szth186.com" target="_blank">亚洲大片精品永久免费</a>| <a href="http://fuqiba.com" target="_blank">99伊人成综合</a>| <a href="http://6666345.com" target="_blank">久久久在线视频</a>| <a href="http://wzxjzx.com" target="_blank">国产精品成人一区</a>| <a href="http://bgdete.com" target="_blank">欧美日韩精品高清</a>| <a href="http://9797690.com" target="_blank">国产日本欧美视频</a>| <a href="http://noeljgq.com" target="_blank">一区二区三区四区蜜桃</a>| <a href="http://sz-changrong.com" target="_blank">久久视频在线视频</a>| <a href="http://www-798009.com" target="_blank">9国产精品视频</a>| <a href="http://filark.com" target="_blank">99精品久久免费看蜜臀剧情介绍</a>| <a href="http://987527.com" target="_blank">老色鬼久久亚洲一区二区 </a>| <a href="http://snis675.com" target="_blank">亚洲精品激情</a>| <a href="http://hehextv.com" target="_blank">欧美在线观看视频一区二区三区</a>| <a href="http://98956888.com" target="_blank">午夜精品久久久</a>| <a href="http://080177.com" target="_blank">欧美mv日韩mv国产网站app</a>| <a href="http://520844www.com" target="_blank">亚洲一区图片</a>| <a href="http://340996.com" target="_blank">国产精品久久久久久影视</a>| <a href="http://sese699.com" target="_blank">国产综合视频</a>| <a href="http://www-369111.com" target="_blank">欧美一区免费</a>| <a href="http://04781900.com" target="_blank">欧美日韩一区二区三区四区五区 </a>| <a href="http://simextec.com" target="_blank">久久久久.com</a>| <a href="http://nbpacking.com" target="_blank">欧美色另类天堂2015</a>| <a href="http://xashp.com" target="_blank">亚洲二区免费</a>| <a href="http://aaa798.com" target="_blank">久久久蜜臀国产一区二区</a>| <a href="http://fuwu56.com" target="_blank">亚洲激情小视频</a>| <a href="http://5177jy.com" target="_blank">久久久久天天天天</a>| <a href="http://483187.com" target="_blank">国产一区欧美</a>| <a href="http://238918.com" target="_blank">久久久亚洲国产天美传媒修理工</a>| <a href="http://894322.com" target="_blank">久久久久se</a>| <a href="http://2938423.com" target="_blank">亚洲午夜激情网站</a>| <a href="http://cz-hongbangfloor.com" target="_blank">欧美日韩一区二区免费视频</a>| <a href="http://www35211.com" target="_blank">91久久国产综合久久蜜月精品 </a>| <a href="http://739822.com" target="_blank">欧美制服丝袜</a>| <a href="http://saobitv.com" target="_blank">久久精品av麻豆的观看方式</a>| <a href="http://sinojinxing.com" target="_blank">欧美视频一区在线</a>| <a href="http://xvideoxxnx.com" target="_blank">亚洲一区二区av电影</a>| <a href="http://myasker.com" target="_blank">亚洲免费av观看</a>| <a href="http://sdjzzs.com" target="_blank">欧美日韩在线播放一区二区</a>| <a href="http://689657.com" target="_blank">亚洲美女在线观看</a>| <a href="http://8eya.com" target="_blank">亚洲精品一区二区在线</a>| <a href="http://483187.com" target="_blank">中文av一区特黄</a>| <a href="http://www47067.com" target="_blank">欧美视频亚洲视频</a>| <a href="http://97gaoba.com" target="_blank">影音先锋中文字幕一区</a>| <a href="http://by5130.com" target="_blank">亚洲国产婷婷香蕉久久久久久99</a>| <a href="http://548710.com" target="_blank">99视频在线观看一区三区</a>| <a href="http://481323.com" target="_blank">宅男噜噜噜66一区二区</a>| <a href="http://016889.com" target="_blank">亚洲精品永久免费精品</a>| <a href="http://fdgkinetic.com" target="_blank">欧美日韩精品一区二区三区四区</a>| <a href="http://91ymz.com" target="_blank">国产色视频一区</a>| <a href="http://85995m.com" target="_blank">欧美中文在线免费</a>| <a href="http://www-26333com.com" target="_blank">欧美国产精品</a>| <a href="http://dtwave-ind.com" target="_blank">免费在线成人av</a>| <a href="http://www-232323.com" target="_blank">中国女人久久久</a>| <a href="http://33wbwb.com" target="_blank">亚洲一区二区三区在线看</a>| <a href="http://www36633.com" target="_blank">久久综合五月</a>| <a href="http://www-34909.com" target="_blank">亚洲日韩第九十九页</a>| <a href="http://zz9876.com" target="_blank">99精品99久久久久久宅男</a>| <a href="http://ahqdlq.com" target="_blank">国产精品人人爽人人做我的可爱 </a>| <a href="http://jigu100.com" target="_blank">亚洲字幕一区二区</a>| <a href="http://86868o.com" target="_blank">中国成人亚色综合网站</a>| <a href="http://chaxiangmall.com" target="_blank">可以免费看不卡的av网站</a>| <a href="http://7755cc.com" target="_blank">欧美日韩国产综合视频在线观看</a>| <a href="http://91porn42.com" target="_blank">国产精品美女视频网站</a>| <a href="http://ooo789.com" target="_blank">久久se精品一区二区</a>| <a href="http://540669.com" target="_blank">一区二区三区久久久</a>| <a href="http://xindefalv.com" target="_blank">国产精品久久久久9999</a>| <a href="http://444yd.com" target="_blank">欧美日韩一级黄</a>| <a href="http://686852a.com" target="_blank">欧美一区二区三区免费大片</a>| <a href="http://www-35777.com" target="_blank">国产一区二区日韩精品</a>| <a href="http://sclddn.com" target="_blank">欧美www在线</a>| <a href="http://tt5125.com" target="_blank">国产精品高潮呻吟久久av无限 </a>| <a href="http://hernameplz.com" target="_blank">欧美日韩人人澡狠狠躁视频</a>| <a href="http://sxhrsmjj.com" target="_blank">亚洲男人影院</a>| <a href="http://7467tom.com" target="_blank">亚洲欧洲一区二区三区</a>| <a href="http://aaa211.com" target="_blank">欧美日韩成人在线</a>| <a href="http://chinasck.com" target="_blank">久久久久这里只有精品</a>| <a href="http://qq666qq.com" target="_blank">欧美黄色一级视频</a>| <a href="http://7357538.com" target="_blank">欧美一级久久久</a>| <a href="http://97caoporm.com" target="_blank">亚洲午夜精品视频</a>| <a href="http://81plas.com" target="_blank">亚洲高清不卡av</a>| <a href="http://609005.com" target="_blank">亚洲综合精品</a>| <a href="http://511caifu.com" target="_blank">国产精品实拍</a>| <a href="http://xshgwy.com" target="_blank">亚洲国产成人精品视频</a>| <a href="http://xingda-sh.com" target="_blank">国产日韩在线不卡</a>| <a href="http://227002.com" target="_blank">日韩视频一区二区三区在线播放免费观看 </a>| <a href="http://3451215.com" target="_blank">亚洲欧美日本日韩</a>| <a href="http://shenshijuesheying.com" target="_blank">亚洲黄色一区</a>| <a href="http://884v.com" target="_blank">久久久激情视频</a>| <a href="http://wwww20.com" target="_blank">一区二区三区高清视频在线观看</a>| <a href="http://576193.com" target="_blank">亚洲成在人线av</a>| <a href="http://yys4.com" target="_blank">国产女精品视频网站免费</a>| <a href="http://44ie.com" target="_blank">亚洲电影中文字幕</a>| <a href="http://488f.com" target="_blank">影音先锋中文字幕一区二区</a>| <a href="http://49vvvv.com" target="_blank">亚洲一区美女视频在线观看免费</a>| <a href="http://989766.com" target="_blank">国产精品福利在线</a>| <a href="http://eguge.com" target="_blank">亚洲婷婷综合色高清在线</a>| <a href="http://788111c.com" target="_blank">久久av一区二区三区亚洲</a>| <a href="http://xiyan88.com" target="_blank">亚洲视频欧美视频</a>| <a href="http://788111c.com" target="_blank">欧美日韩1区2区</a>| <a href="http://z10669.com" target="_blank">亚洲激情av</a>| <a href="http://488089.com" target="_blank">在线免费一区三区</a>| <a href="http://521mu.com" target="_blank">欧美怡红院视频</a>| <a href="http://cuucs.com" target="_blank">久久精品1区</a>| <a href="http://7kz6.com" target="_blank">国产一区av在线</a>| <a href="http://scptw.com" target="_blank">亚洲中午字幕</a>| <a href="http://vpay1314.com" target="_blank">欧美一区二区三区日韩视频</a>| <a href="http://ym5571.com" target="_blank">国产精品久久久久影院亚瑟 </a>| <a href="http://yyds16.com" target="_blank">亚洲高清视频一区二区</a>| <a href="http://405151.com" target="_blank">韩国一区电影</a>| <a href="http://1390744.com" target="_blank">欧美在线综合</a>| <a href="http://shyihegu.com" target="_blank">久久综合一区二区三区</a>| <a href="http://dy25777.com" target="_blank">韩国女主播一区</a>| <a href="http://ximaimicro.com" target="_blank">久久国产色av</a>| <a href="http://zz9876.com" target="_blank">久久一区视频</a>| <a href="http://5566kan.com" target="_blank">在线国产欧美</a>| <a href="http://199372.com" target="_blank">免费在线观看精品</a>| <a href="http://qdzhudai.com" target="_blank">亚洲激情中文1区</a>| <a href="http://yw133777.com" target="_blank">99热这里只有精品8</a>| <a href="http://dahuxu.com" target="_blank">欧美日韩一区二区视频在线</a>| <a href="http://580078.com" target="_blank">日韩亚洲国产精品</a>| <a href="http://ynjzwh.com" target="_blank">久久精品国产第一区二区三区</a>| <a href="http://aqdav037.com" target="_blank">久久九九99</a>| <a href="http://ll992.com" target="_blank">国产婷婷色一区二区三区在线</a>| <a href="http://5773000.com" target="_blank">麻豆精品一区二区av白丝在线</a>| <a href="http://www249aaa.com" target="_blank">久久嫩草精品久久久久</a>| <a href="http://pinyuanad.com" target="_blank">久久三级视频</a>| <a href="http://haochen072.com" target="_blank">亚洲三级影片</a>| <a href="http://354eee.com" target="_blank">国产精品www</a>| <a href="http://4449992.com" target="_blank">亚洲欧美在线aaa</a>| <a href="http://86808a.com" target="_blank">快射av在线播放一区</a>| <a href="http://3534m.com" target="_blank">亚洲国产三级在线</a>| <a href="http://www280999.com" target="_blank">欧美美女日韩</a>| <a href="http://jiajianpei.com" target="_blank">亚洲制服丝袜在线</a>| <a href="http://vipaiqiyi.com" target="_blank">免费视频一区二区三区在线观看</a>| <a href="http://119663.com" target="_blank">国产精品a级</a>| <a href="http://yeepey.com" target="_blank">午夜一区在线</a>| <a href="http://aqdw2021.com" target="_blank">欧美成人一区二区三区在线观看 </a>| <a href="http://yeepey.com" target="_blank">一区二区视频在线观看</a>| <a href="http://2589999.com" target="_blank">久久伊人亚洲</a>| <a href="http://lovehefei.com" target="_blank">亚洲美女免费精品视频在线观看</a>| <a href="http://26mmmm.com" target="_blank">激情综合色丁香一区二区</a>| <a href="http://www-57549.com" target="_blank">久久久久久久综合色一本</a>| <a href="http://aidingcai.com" target="_blank">亚洲国产精品成人综合</a>| <a href="http://xxx444vip.com" target="_blank">国产揄拍国内精品对白</a>| <a href="http://xcao10.com" target="_blank">久久午夜色播影院免费高清</a>| <a href="http://y87b.com" target="_blank">亚洲国产一区二区三区高清</a>| <a href="http://duoying668.com" target="_blank">亚洲一区bb</a>| <a href="http://5599912.com" target="_blank">激情综合在线</a>| <a href="http://817794.com" target="_blank">久久久精品国产99久久精品芒果</a>| <a href="http://7885888.com" target="_blank">亚洲特级毛片</a>| <a href="http://342008.com" target="_blank">国内视频一区</a>| <a href="http://by71222.com" target="_blank">欧美怡红院视频</a>| <a href="http://www123720a.com" target="_blank">亚洲国产黄色</a>| <a href="http://238918.com" target="_blank">久久精品一本</a>| <a href="http://heyzo1031.com" target="_blank">亚洲视频欧美视频</a>| <a href="http://312012.com" target="_blank">亚洲成人在线</a>| <a href="http://05511253.com" target="_blank">国产丝袜一区二区</a>| <a href="http://zhijiasd.com" target="_blank">午夜精彩视频在线观看不卡 </a>| <a href="http://zw1019.com" target="_blank">蜜臀99久久精品久久久久久软件</a>| <a href="http://www-442336.com" target="_blank">亚洲欧美制服中文字幕</a>| <a href="http://www-90422.com" target="_blank">国产午夜精品全部视频播放</a>| <a href="http://qiezi2vip.com" target="_blank">欧美精品观看</a>| <a href="http://17ccem.com" target="_blank">久久综合九色综合欧美狠狠</a>| <a href="http://gzxyh88.com" target="_blank">久久久久国产精品一区二区</a>| <a href="http://nxhjzddata.com" target="_blank">最近看过的日韩成人</a>| <a href="http://pansinobbs.com" target="_blank">国产日本亚洲高清</a>| <a href="http://1000078.com" target="_blank">欧美日韩成人综合在线一区二区 </a>| <a href="http://666675com.com" target="_blank">亚洲欧美日本伦理</a>| <a href="http://szjyf668.com" target="_blank">亚洲国产二区</a>| <a href="http://sauske.com" target="_blank">韩国av一区二区</a>| <a href="http://www22336.com" target="_blank">国产欧美在线视频</a>| <a href="http://49028b.com" target="_blank">欧美午夜精品久久久久久人妖 </a>| <a href="http://www37999.com" target="_blank">久久久91精品国产一区二区精品</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>