濂戒功瑕佸璇伙紝姣忛噸璇諱竴嬈′細鏈夋柊鐨勬敹鑾?/span>錛夈傛瘮濡傦細鍦ㄥ姩鎬佽鍒掔畻娉曢噷錛岀▼搴忓彲浠ョ敤閫掑綊綆楁硶鍜岀敤琛ㄦ牸鍖栨柟娉曞疄鐜般傞掑綊綆楁硶鐨勭己鐐規槸錛氭湁閮ㄥ垎鍊間細琚噸綆楋紝瑙e喅鏂規硶鏄敤涓涓暟緇勬妸宸茬粡璁$畻榪囩殑鍊煎瓨璧鋒潵錛岃繖鏍峰氨涓嶄細閲嶅璁$畻浜嗐傝〃鏍煎寲鐨勭畻娉曟槸錛氭病鏈夐掑綊綆楁硶濂界悊瑙o紝瑙e喅鍔炴硶鏄細鍦ㄤ唬鐮佸紑澶村姞涓敞閲婏紝娉ㄩ噴灝辨槸閭e嚑鏉¢掑綊瑙勫垯錛屽ぇ涓嶄簡鍐嶅姞涓婅鏄?#8220;姝や唬鐮佺敤鐨勬槸鍔ㄦ佽鍒?#8221;銆?ps錛歭inux閲宒iff鐨勫熀鏈畻娉曞氨鏄姩鎬佽鍒掑惂錛屾劅瑙夊拰鏈闀垮叕鍏卞瓙涓茬被浼鹼紝鑷繁瀹炵幇浜嗕竴涓?diff.pl)(鏇存柊錛氫粖澶╁湪緗戜笂鐪嬪埌浜嗗叧浜巇iff鐢ㄥ姩鎬佽鍒掑疄鐜扮殑淇℃伅錛?a title="Dynamic programming Creative Exercises 2 Unix diff" >Dynamic programming Creative Exercises 2 Unix diff, 鍏舵簮鐮佷負diff.java 錛屾瘮鎴戠殑濂戒簡N澶氬嶏紝鎵撳嵃緇撴灉鐨勯偅孌典唬鐮佺殑鎬濇兂鐩稿綋濂斤紒浠g爜綆媧佹竻娣呫傚彟澶栵紝鎴戝紑濮嬭寰楃敤琛ㄦ牸鍖栫殑鏂規硶瀹炵幇鍔ㄦ佽鍒掓洿甯呬簡銆?nbsp; 錛嶏紞2011.7.22 )銆?br />
璇昏繖鏈功鏀惰幏寰堝錛屽垪涓懼嚑涓惂錛?br /> 1. 涔﹂噷鐨?#8220;紼嬪簭楠岃瘉” 鎶鏈緢闈犺氨錛岃紼嬪簭鐪嬭搗鏉ユ竻鏅版槗鎳傦紝榪樿兘浠庝竴瀹氱▼搴︿繚璇佹紜с?br /> 2. “鍝ㄥ叺”(Sentinel value )琚嚑嬈$敤鍒頒簡錛屾劅瑙夎繕涓嶉敊錛屼唬鐮佺湅璧鋒潵鏇寸畝鍗曚簡錛岃繕鑳藉甫鏉ヤ竴鐐瑰皬灝忔晥鐜囥?br /> 3. 鏃剁┖鎶樹腑涓庡弻璧€傚湪鍘熷璁捐鐨勭畻娉曞茍闈炴渶浣蟲柟妗堟椂錛岄氳繃鏀瑰杽綆楁硶鏄彲浠ヨ揪鍒板弻璧㈢殑銆?br /> 4. 鐢ㄥ彧鍒嗛厤涓涓緝澶у唴瀛樺潡鐨勬柟妗堟潵鏇挎崲閫氱敤鍐呭瓨鍒嗛厤錛岃繖鏍峰氨娑堥櫎浜嗗緢澶?寮閿杈冨ぇ鐨勮皟鐢紝鑰屼笖涔熶嬌鐢ㄧ┖闂寸殑鍒╃敤鏇村姞鏈夋晥銆?br /> 5. 鏁板妯″瀷鐨勫緩绔嬫槸寰堥噸瑕佺殑銆傛妸鏁癮鎯蟲垚鐢ㄩ泦鍚圼a,a + 1)琛ㄧず鏄9绔犱腑浜屽垎鏌ユ壘浠g爜璋冧紭鐨勬牳蹇冩濇兂銆傛暟緇勬棆杞偅涓畻娉曚篃瀹炲湪鏄おnb浜嗐?br /> 6. 涓涓啓寰楀緢濂界殑浠g爜錛屽湪鍑犱釜鍦版柟鐪嬪埌榪囷紝鎬諱細蹇橈紝榪欐璁頒笅錛?br /> 閾捐〃閲屾湁涓涓摠鍏靛厓绱狅紝鍒濆鏃? head = sentinel = new Node(value, 0);
鍚戦摼琛ㄦ彃鍏ュ厓绱狅細
insert(v)
for(p = &head; (*p)->val < t; p = &((*p)->next))
;
if (*p)->val == v
return
*p = new node(v, *p)
涓嬮潰鏄垜鍐欑殑錛?br /> insert(v)
p = head;
while(p->val < t)
p = p->next
if(p-> val == v)
return
q = node(t,p)
if(p == head)
head = q;
鍙﹀錛屾敞鎰忓埌涓鏈功錛?a title="綆楁硶璁捐涓庡垎鏋愬熀紜">綆楁硶璁捐涓庡垎鏋愬熀紜錛?錛岀敤涓嶅悓鐨勬柟寮忚綆楁硶錛屾妸綆楁硶鎸夊叾閫氱敤紼嬪害鎻愬嚭浜?涓渶鍩烘湰鐨勭畻娉曟濇兂錛欱rute force 錛?Divide & conquer 錛?Decrease & conquer錛?nbsp; Transform & conquer銆?
鏈鍚庢憳褰曚竴涓?絎?鐗堣穻 閲岀粰鐨勫嚑涓緩璁?
1. 瑙e喅姝g‘鐨勯棶棰樸?棣栧厛褰誨簳鐞嗚В闂
2. 鎺㈢儲鎵鏈夊彲鑳界殑瑙e喅鏂規
3. 瑙傚療鏁版嵁
4. 浣跨敤綺楃暐浼扮畻
5. 寰楃敤瀵圭О鎬?
6. 鍒╃敤緇勪歡鍋氳璁?
7. 寤虹珛鍘熷瀷
8. 蹇呰鏃惰繘琛屾潈琛?
9. 淇濇寔綆鍗?
10.榪芥眰浼樼編
]]>