ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>精品一区二区三区视频日产,91麻豆精品国产91久久久更新时间,精品国产乱码久久久久软件http://www.aygfsteel.com/flyingis/category/6808.htmlTalking and thinking freely !<br> Flying in the world of Java and GIS !zh-cnTue, 27 Feb 2007 08:42:18 GMTTue, 27 Feb 2007 08:42:18 GMT60基本数殾l“构的Java实现http://www.aygfsteel.com/flyingis/archive/2006/02/05/29646.htmlFlyingisFlyingisSun, 05 Feb 2006 15:08:00 GMThttp://www.aygfsteel.com/flyingis/archive/2006/02/05/29646.htmlhttp://www.aygfsteel.com/flyingis/comments/29646.htmlhttp://www.aygfsteel.com/flyingis/archive/2006/02/05/29646.html#Feedback1http://www.aygfsteel.com/flyingis/comments/commentRss/29646.htmlhttp://www.aygfsteel.com/flyingis/services/trackbacks/29646.html链表

class Node {

Object item; Node next;

  Node (Object v) {

item = v; next = null;

}

}

头指针,½Iºå°¾æŒ‡é’ˆ

åˆå§‹åŒ–:head = null;

åœ?/SPAN>xåŽæ’å…?/SPAN>tåQ?/SPAN>

if ( x == null)

{ head = t; head.next = null; }

else { t.next = x.next; x.next = t; }

¿U»èµ°x之åŽçš„结点:t = x.next; x.next = t.next;

循环é历åQ?/SPAN>for ( t = head; t != null; t = t.next )

‹‚€æŸ¥é“¾è¡¨æ˜¯å¦äØ“½Iºï¼šif ( head == null )

½Iºå¤´¾l“点åQŒç©ºž®¾æŒ‡é’?/SPAN>

åˆå§‹åŒ–:head = new Node(); head.next = null;

åœ?/SPAN>xåŽæ’å…?/SPAN>tåQ?/SPAN>t.next = x.next; x.next = t;

¿U»èµ°x之åŽçš„结点:t = x.next; x.next = t.next;

循环é历åQ?/SPAN>for ( t = head.next; t != null; t = t.next )

‹‚€æŸ¥é“¾è¡¨æ˜¯å¦äØ“½Iºï¼šif ( head.next == null )

½Iºå¤´¾l“点åQŒç©ºž®„¡»“ç‚?/SPAN>

åˆå§‹åŒ–:head = new Node(); z = new Node(); head.next = z; z.next = z;

åœ?/SPAN>xåŽæ’å…?/SPAN>tåQ?/SPAN>t.next = x.next; x.next = t;

¿U»èµ°x之åŽçš„结点:t = x.next; x.next = t.next;

循环é历åQ?/SPAN>for ( t = head.next; t != z; t = t.next )

‹‚€æŸ¥é“¾è¡¨æ˜¯å¦äØ“½Iºï¼šif ( head.next == z )

循环链表

½W¬ä¸€‹Æ¡æ’入:head.next = head;

åœ?/SPAN>xåŽæ’å…?/SPAN>tåQ?/SPAN>t.next = x.next; x.next = t;

¿U»èµ°x之åŽçš„结点:t = x.next; x.next = t.next;

循环é历åQ?/SPAN>t = head; do { t = t.next; } while ( t != head );

‹‚€æŸ¥æ˜¯å¦åªæœ‰ä¸€ä¸ªæ•°æ®é¡¹åQ?/SPAN>if ( head.next == head )

 

堆栈

数组实现

class Stack {

  private Object[] s;

  private int n;

  Stack ( int maxN ) {

    s = new Object[maxN]; n = 0;

}

boolean isEmpty() { return ( n == 0 ); }

void push ( Object item ) { s[n++] = item; }

Object pop() {

  Object t = s[--n]; s[n] = null; return t;

}

}

链表实现

class Stack {

  private Node head;

  private class Node {

Object item; Node next;

Node ( Object item, Node next ) {

  this.item = item; this.next = next;

}

}

Stack ( Object maxN ) { head = null; }

boolean isEmpty() { return ( head ==null ); }

void push ( Object item ) { head = new Node(item, head); }

Object pop() {

  Object v = head.item;

  Node t = head.next;

  head = t;

  return v;

}

}

 

FIFO队列的链表实�/SPAN>

class Queue {

  private class Node {

Object item; Node next;

Node ( Object item ) {

  this.item = item; this.next = null;

}

}

Private Node head, tail;

Queue ( Object max ) { head = null; tail = null; }

boolean isEmpty() { return ( head ==null ); }

void put ( Object item ) {

  Node t = tail;

  tail = new Node(item);

  if ( empty() )

    head = tail;

  else t.next = tail

}

Object get() {

  Object v = head.item;

  Node t = head.next;

  head = t;

  return v;

}

}



Flyingis 2006-02-05 23:08 å‘表评论
]]>
数殾l“构中é¿å…æ•°æ®é¡¹çš„é‡å¤?/title><link>http://www.aygfsteel.com/flyingis/archive/2006/01/30/29361.html</link><dc:creator>Flyingis</dc:creator><author>Flyingis</author><pubDate>Sun, 29 Jan 2006 16:34:00 GMT</pubDate><guid>http://www.aygfsteel.com/flyingis/archive/2006/01/30/29361.html</guid><wfw:comment>http://www.aygfsteel.com/flyingis/comments/29361.html</wfw:comment><comments>http://www.aygfsteel.com/flyingis/archive/2006/01/30/29361.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/flyingis/comments/commentRss/29361.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/flyingis/services/trackbacks/29361.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 6pt 0cm; TEXT-INDENT: 21.75pt; mso-para-margin-top: .5gd; mso-para-margin-right: 0cm; mso-para-margin-bottom: .5gd; mso-para-margin-left: 0cm"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">抽象数殾cÕdž‹</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">(ADT)</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是一¿Uåªèƒ½é€šè¿‡æŽ¥å£è®‰K—®çš„æ•°æ®ç±»åž‹ï¼Œå®ƒæ˜¯å­—段与基于字ŒD늚„æ“作所构æˆçš„集åˆã€‚这里的接å£ä¸æ˜¯</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">interface</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">åQŒè€Œæ˜¯è®‰K—®æ•°æ®çš„途径åQŒæŽ¥å£æŠŠæ•°æ®çš„表½Cºå’Œæ“作æ–ÒŽ³•的实现完全分¼›Õd¼€æ¥ã€‚两¿U最基本çš?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">ADT</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是堆栈和队列åQŒåÆˆä¸”æ ¹æ®æˆ‘们的需è¦ï¼Œå¯ä»¥æž„徿›´äØ“å¤æ‚çš?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">ADT</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">åQŒä¾‹å¦‚å¯ä»¥å¯¹æ•°æ®™å¹è¿›è¡Œè®¡æ•ŽÍ¼Œ‹‚€æŸ¥æ•°æ®é¡¹æ˜¯å¦å­˜åœ¨é‡å¤½{‰ç­‰ã€?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 6pt 0cm; TEXT-INDENT: 21.75pt; mso-para-margin-top: .5gd; mso-para-margin-right: 0cm; mso-para-margin-bottom: .5gd; mso-para-margin-left: 0cm"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在很多实际应用中åQŒæˆ‘们都ä¸å…许存在数æ®é¡¹é‡å¤çš„æƒ…况,需è¦å¯¹ç”¨æˆ·æäº¤çš„é‡å¤æ•°æ®è¿›è¡Œåˆé€‚的处ç†ã€‚让用户ä¿è¯ä¸æäº¤é‡å¤çš„æ•°æ®å¯ä»¥é¿å…˜q™ç§æƒ…况的å‘生,但显然这¿Uæ–¹æ³•åÆˆä¸å®žé™…,既然使用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">ADT</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">ž®±æ˜¯ä¸ÞZº†¾l™ä‹É用它的程åºå‘˜æä¾›½Ž€å•明了的数殾cÕdž‹è§£å†³æ–ÒŽ¡ˆåQŒé‚£ä¹ˆæˆ‘们就应该åœ?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">ADT</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中æ¥è§£å†³˜q™ä¸ªé—®é¢˜ã€‚以队列ä¸ÞZ¾‹åQŒä¸€èˆ¬å¯ä»¥é€šè¿‡ä¸¤ç§½{–ç•¥æ¥å¤„ç†è¿™ä¸ªé—®é¢˜ï¼š</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 6pt 0cm 6pt 18pt; TEXT-INDENT: -18pt; mso-para-margin-top: .5gd; mso-para-margin-right: 0cm; mso-para-margin-bottom: .5gd; mso-para-margin-left: 18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore">1.<SPAN style="FONT: 7pt 'Times New Roman'">        </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">攑ּƒæ–°è¾“入的数殙å¹ï¼šå½“最新放入队列中的数æ®é¡¹å·²ç»åœ¨é˜Ÿåˆ—中æ—Óž¼Œæ”‘Ö¼ƒå½“å‰è¾“入的数æ®é¡¹ã€?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 6pt 0cm 6pt 18pt; TEXT-INDENT: -18pt; mso-para-margin-top: .5gd; mso-para-margin-right: 0cm; mso-para-margin-bottom: .5gd; mso-para-margin-left: 18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore">2.<SPAN style="FONT: 7pt 'Times New Roman'">        </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">攑ּƒæ—§çš„æ•°æ®™å¹ï¼Œä¿å­˜æ–°è¾“入的数殙å¹ï¼šå½“最新放入队列中的数æ®é¡¹å·²ç»åœ¨é˜Ÿåˆ—中æ—Óž¼Œæ”‘Ö¼ƒå·²ç»å­˜åœ¨äºŽé˜Ÿåˆ—中的数æ®é¡¹åQŒä¿å­˜å½“剿”¾å…¥çš„æ•°æ®™åV€?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p></o:p></SPAN></P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">    对于½W¬ä¸€¿Uå¤„ç†æ–¹å¼ï¼Œåœ¨ä¸€¿U特ŒDŠçš„æƒ…况下,数殙å¹å­˜å‚¨çš„æ•°æ®æ˜?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">0~N-1</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">之间的整敎ͼŒé‚£ä¹ˆå¯ä»¥é€šè¿‡å¢žåŠ ä¸€ä¸ªæ–°çš„æ•°¾l?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">a[i]</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">或链表æ¥å‚¨å­˜</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">boolean</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">¾cÕdž‹æ•°æ®åQŒå½“队列中第</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">i</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">个佾|®ä¸Šå·²ç»å­˜åœ¨æ•°æ®</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">i</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">æ—?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">(i<=N-1)</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">åQŒè®¾¾|?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">a[i]=boolean</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">åQŒé‚£ä¹ˆå¯ä»¥é€šè¿‡</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">a[i]</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">æ¥åˆ¤æ–­æ•°æ?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">i</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">是å¦å·²ç»å­˜åœ¨äºŽé˜Ÿåˆ—中。第二ç§å¤„ç†æ–¹å¼æ¯”第一¿Uæ›´ä¸ºå¤æ‚一些,如果有必è¦ï¼Œ˜q˜å¯ä»¥è®©ç”¨æˆ·åŽ»é€‰æ‹©é‡‡å–哪秽{–ç•¥æ¥é¿å…é‡å¤çš„æ•°æ®™åV€‚但ä¸ç®¡æ€Žä¹ˆæ øP¼Œæˆ‘们å¯ä»¥é€šè¿‡æž„å¾ä¸åŒ¾cÕdž‹çš?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">ADT</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">åQŒåƈåœ?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">ADT</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">中实现æŸäº›æˆ‘们所需è¦çš„功能åQŒå°†èƒ½æžå¤§é™åº¦åœ°ä¿è¯æ•°æ®¾l“构和算法的ç‰|´»æ€§ä¸Žæ¸…晰的结构,使基äº?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">ADT</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的实现能满èƒöå„ç§ä¸åŒçš„具体应用,òq¶æ–¹ä¾¿ç±»çš„釿ž„ã€?/SPAN><img src ="http://www.aygfsteel.com/flyingis/aggbug/29361.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/flyingis/" target="_blank">Flyingis</a> 2006-01-30 00:34 <a href="http://www.aygfsteel.com/flyingis/archive/2006/01/30/29361.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>ç†è§£æ•°ç»„和链表的最基本ç‰ÒŽ€?/title><link>http://www.aygfsteel.com/flyingis/archive/2006/01/24/29150.html</link><dc:creator>Flyingis</dc:creator><author>Flyingis</author><pubDate>Tue, 24 Jan 2006 15:42:00 GMT</pubDate><guid>http://www.aygfsteel.com/flyingis/archive/2006/01/24/29150.html</guid><wfw:comment>http://www.aygfsteel.com/flyingis/comments/29150.html</wfw:comment><comments>http://www.aygfsteel.com/flyingis/archive/2006/01/24/29150.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/flyingis/comments/commentRss/29150.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/flyingis/services/trackbacks/29150.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">作者:</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: navy"><A href="/flyingis/" target=_blank><SPAN style="COLOR: navy">Flyingis</SPAN></A></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p> </o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数组和链表是数殾l“构中è€ç”Ÿå¸¸è°ˆçš„问题,在指针或是引用这些概念出æ¥ä¹‹å‰ï¼Œæ•°ç»„ž®Þpƒ½ç”¨æ¥å®žçŽ°é“¾è¡¨çš„åŠŸèƒ½ã€‚è¿™é‡Œæ‰€è¯´çš„é“¾è¡¨æŒ‡çš„ž®±æ˜¯ç”¨æŒ‡é’ˆæˆ–对象的引用æ¥è®¾è®¡çš„链表ã€?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在实际的应用开å‘中åQŒæ•°¾l„由于它天生的秿U特æ€?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">(</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">å‚è€?A href="/flyingis/archive/2005/12/15/24089.html" target=_blank><FONT color=#000080>ã€?/FONT></A></SPAN><A href="/flyingis/archive/2005/12/15/24089.html"><FONT color=#000080><SPAN lang=EN-US style="FONT-SIZE: 10pt">Java</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">容器分æž</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">â€?/SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数组ã€?/SPAN></FONT></A><SPAN lang=EN-US style="FONT-SIZE: 10pt">)</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">åQŒæ›´å¤šçš„会被开å‘äh员所惛_ˆ°ç”¨åˆ°åQŒä½†æ‰€æœ‰çš„æ•°æ®¾l“构都有它特定的适用场åˆã€‚众所周知åQŒæ•°¾l„和链表最大的区别在于åQŒä‹É用数¾l„能够快速访问数¾l„中的æ¯ä¸ªå…ƒç´ ï¼Œè€Œä‹É用链表å¯ä»¥æ–¹ä¾¿çš„æ“çºµæ¯ä¸ªæ•°æ®™åV€‚下é¢é€šè¿‡ä¸¤ä¸ªå¾ˆæœ‰­‘£çš„例å­è¯´æ˜Žäº†å®ƒä»¬å„自的区别与优åŠÑ€?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">虽然åœ?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">JDK</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">ä¸?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Java</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">æä¾›äº?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">List</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接å£åŠå…¶æŽ¥å£çš„实çŽ?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">(ArrayList/LinkedList)</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">寚w“¾è¡¨æ•°æ®ç»“æž„æä¾›äº†æœ‰åŠ›çš„æ”¯æŒï¼Œå…·ä½“å¯ä»¥å‚è€?A href="/flyingis/archive/2005/12/21/24951.html" target=_blank><FONT color=#000080>ã€?/FONT></A></SPAN><A href="/flyingis/archive/2005/12/21/24951.html"><FONT color=#000080><SPAN lang=EN-US style="FONT-SIZE: 10pt">Java</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">容器分æž</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">—Listå’ŒSet</SPAN></FONT></A><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><A href="/flyingis/archive/2005/12/21/24951.html"><FONT color=#000080>ã€?/FONT></A>但䏋颿•°å­¦ä¸Šå…³äºŽ</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">Josephus</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">问题的实çŽîC»…使用了自定义的最½Ž€å•的链表¾l“æž„ã€?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">/**<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes"> </SPAN>* </SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">æ Òޮ命ä×o行输入的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">N</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">å€û|¼Œè®¡ç®—出所有å°äº?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">N</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的素æ•?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes"> </SPAN>* </SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">æ˜¯ç´ æ•°å°†æ•°ç»„å…ƒç´ å€ÆD®¾ä¸?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">true</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">åQŒå¦åˆ™è®¾ä¸?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">false<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes"> </SPAN>*/<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">class ArrayApp {<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">  </SPAN>public static void main(String[] args) {<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">int N = Integer.parseInt(args[0]);<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">boolean[] a = new boolean[N];<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">for (int i = 2; i < N; i++)<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">  </SPAN>a[i] = true;<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">for (int i = 2; i < N; i++)<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">  </SPAN>if (a[i] != false)<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">    </SPAN>for (int j = i; j*i < N; j++)<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">      </SPAN>a[i*j] = false;<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">for (int i = 2; i < N; j++)<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">  </SPAN>if (a[i])<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">    </SPAN>System.out.println(“â€?+ i);<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt">}<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">}<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">/**<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes"> </SPAN>* N</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个有¾~–å·çš„å°çƒå›´æˆä¸€åœˆï¼Œæ¯ä¸ª</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">M-1</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个就拿去一个å°çƒï¼Œè®¡ç®—最åŽå‰©ä¸‹çš„çƒçš„ä½ç½®</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes"> </SPAN>*/<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">class LinkApp {<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">  </SPAN>static class Node {<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">int value;<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">Node next;<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">Node (int v) { v = value; }<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt">}<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt">public static void main(String[] args) {<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">  </SPAN>int N = Integer.parseInt(args[0]);<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">  </SPAN>int M = Integer.parseInt(args[1]);<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">  </SPAN>Node first = new Node(1);<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">  </SPAN>Node x = first;<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">  </SPAN>for (int i = 2; i <= N; i++)<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">    </SPAN>x = (x.next = new Node(i));<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">  </SPAN>x.next = first;<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">  </SPAN>while (x != x.next) {<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">    </SPAN>for (int i = 1; i < M; i++)<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">      </SPAN>x = x.next;<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt"><SPAN style="mso-spacerun: yes">    </SPAN>x.next = x.next.next;<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 20pt; mso-char-indent-count: 2.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt">}<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 20pt; mso-char-indent-count: 2.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt">System.out.println(â€?/SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最åŽå‰©ä¸‹çš„ž®çƒåQ?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">â€?+ x.value);<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10pt; mso-char-indent-count: 1.0"><SPAN lang=EN-US style="FONT-SIZE: 10pt">}<o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt">}<o:p></o:p></SPAN></P><img src ="http://www.aygfsteel.com/flyingis/aggbug/29150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/flyingis/" target="_blank">Flyingis</a> 2006-01-24 23:42 <a href="http://www.aygfsteel.com/flyingis/archive/2006/01/24/29150.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>½Ž—法分æžè§„则http://www.aygfsteel.com/flyingis/archive/2006/01/22/28908.htmlFlyingisFlyingisSat, 21 Jan 2006 16:34:00 GMThttp://www.aygfsteel.com/flyingis/archive/2006/01/22/28908.htmlhttp://www.aygfsteel.com/flyingis/comments/28908.htmlhttp://www.aygfsteel.com/flyingis/archive/2006/01/22/28908.html#Feedback9http://www.aygfsteel.com/flyingis/comments/commentRss/28908.htmlhttp://www.aygfsteel.com/flyingis/services/trackbacks/28908.html作者:Flyingis

    ½Ž—æ³•ä½œäØ“å®žçŽ°è®¡ç®—æœºç¨‹åºå®žçŽ°æ—¶è§£å†³é—®é¢˜çš„æ–¹æ³•ï¼Œåœ¨è®¡½Ž—æœºåº”ç”¨é¢†åŸŸå‘æŒ¥ç€ä¸¾èƒöè½»é‡çš„作用。它研究的内å®ÒŽ˜¯è§£å†³é—®é¢˜çš„æ–¹æ³•ï¼Œè€Œä¸æ˜¯è®¡½Ž—机½E‹åºçš„æœ¬íw«ã€‚一个优¿U€çš„算法å¯ä»¥è¿è¡Œåœ¨æ¯”较慢的计算æœÞZ¸ŠåQŒä½†ä¸€ä¸ªåŠ£è´¨çš„½Ž—æ³•åœ¨ä¸€å°æ€§èƒ½å¾ˆå¼ºçš„计½Ž—机上也ä¸ä¸€å®šèƒ½æ»¡èƒö应用的需è¦ï¼Œå› æ­¤åQŒåœ¨è®¡ç®—机程åºè®¾è®¡ä¸­åQŒç®—法设计往往处于核心åœîC½ã€‚如何去设计一个适åˆç‰¹å®šåº”用的优¿U€½Ž—法是众多开å‘äh员所å…Ïx³¨çš„焦点,在算法设计时åQŒéœ€è¦äº†è§£ç®—法设计的规则ã€?/span>

è¦æƒ³å……分ç†è§£½Ž—法òq¶æœ‰æ•ˆåœ°åº”用于实际问题,关键是对½Ž—法的分æžã€‚通常我们å¯ä»¥åˆ©ç”¨å®žéªŒå¯Òޝ”分æžã€æ•°å­¦æ–¹æ³•æ¥åˆ†æž½Ž—法。实验对比分æžå¾ˆ½Ž€å•,两个½Ž—æ³•ç›æ€º’比较åQŒå®ƒä»¬éƒ½èƒ½è§£å†›_Œä¸€é—®é¢˜åQŒåœ¨ç›¸åŒçŽ¯å¢ƒä¸‹ï¼Œå“ªä¸ª½Ž—æ³•çš„é€Ÿåº¦å¿«æˆ‘ä»¬ä¸€èˆ¬å°±ä¼šè®¤ä¸ø™¿™ä¸ªç®—法性能更好。数学方法能ž®†ç®—法分æžçš„æ›´äØ“¾l†è‡´åQŒèƒ½åœ¨ä¸¥å¯†çš„逻辑推ç†åŸºç¡€ä¸Šåˆ¤æ–­ç®—法的优劣åQŒä½†åœ¨å®Œæˆå®žé™…项目过½E‹ä¸­åQŒæˆ‘们很多时候都ä¸èƒ½åŽÕdš˜q™ç§ä¸¥å¯†çš„论è¯ä¸ŽæŽ¨æ–­åQŒå› ä¸ºæˆ‘们䏿˜¯åœ¨å®Œæˆä¸€é“æ•°å­¦éš¾é¢˜ï¼Œä¹Ÿä¸æ˜¯æ•°å­¦é¢†åŸŸçš„专家åQŒå°†å¤§é‡çš„æ—¶é—´èŠ±è´¹åœ¨å…¬å¼çš„计½Ž—ä¸Žè¯æ˜Žä¸Šä¼šå¯ÆD‡´æ•´ä¸ª™å¹ç›®˜q›åº¦¾~“æ…¢ã€æˆæœ¬è¿‡é«˜ï¼Œå› æ­¤åQŒåœ¨½Ž—æ³•è®¾è®¡ä¸­ï¼Œæˆ‘ä»¬å¾€å¾€é‡‡ç”¨èƒ½è¿‘ä¼ÆD¡¨è¾¾æ€§èƒ½çš„æ–¹æ³•æ¥å±•示æŸä¸ª½Ž—法的性能指标。例如,计算机对n2å’?/span>n2+2nçš„å“应速度åQŒå½“n比较大的时候几乎一æ äh²¡ä»€ä¹ˆåŒºåˆ«ï¼Œæˆ‘们便å¯ç›´æŽ¥è®¤äØ“åŽè€…ç®—æ³•çš„å¤æ‚åº¦äØ“n2ã€‚åœ¨åˆ†æž½Ž—æ³•æ—Óž¼Œéšè—¾l†èŠ‚çš„æ•°å­¦è¡¨½Cºæ³•æˆäؓ大O记法åQŒå®ƒå¯ä»¥å¸®åŠ©æˆ‘ä»¬½Ž€åŒ–ç®—æ³•å¤æ‚度的许多细节,æå–ä¸»è¦æˆåˆ†åQŒè¿™å’Œé¥æ„Ÿå›¾åƒå¤„ç†ä¸­çš„主æˆåˆ†åˆ†æžæ€æƒ³ç›¸è¿‘ã€?/span>

åŸÞZºŽ½Ž—æ³•å¤æ‚度简化表辄¡š„æ€æƒ³åŸºç¡€ä¸Šï¼Œæˆ‘们通常会对½Ž—法˜q›è¡Œæœ€å情况分æžå’Œòq›_‡æƒ…况分æžã€‚对于一个给定的½Ž—法åQŒå¦‚果能ä¿è¯å®ƒçš„æœ€å情况下的性能ä¾ç„¶ä¸é”™å½“然很好åQŒä½†æ˜¯åœ¨æŸäº›æƒ…况下,½E‹åºçš„æœ€å情å†ëŠ®—法的˜q行旉™—´å’Œå®žé™…情å†ëŠš„˜q行旉™—´ç›¸å·®å¾ˆå¤§åQŒåœ¨å®žé™…应用中我们几乎ä¸ä¼šç¢°åˆ°æœ€å情况下的输入,那么此时˜q›è¡Œæœ€åæƒ…å†µåˆ†æžæ˜¾å¾—有些画蛇添­‘»I¼Œç‰¹åˆ«æ˜¯åˆ†æžæœ€å情å†ëŠ®—法会èŠÞp´¹å¤§é‡¾_‘ÖŠ›çš„æ—¶å€™ã€‚算法的òq›_‡æƒ…况分æžå¯ä»¥å¸®åŠ©æˆ‘ä»¬ä¼°è®¡½E‹åºçš„æ€§èƒ½åQŒä½œä¸ºç®—法分æžçš„基本指标之一åQŒä½†æ˜¯åã^凿ƒ…况和实际情况ä»ç„¶ä¼šæœ‰ç›¸å·®å¾ˆå¤§çš„æ—¶å€™ï¼Œ˜q™æ—¶æˆ‘们便å¯ä»¥ä‹Éç”¨éšæœºæ³•æ¥å°½é‡æ¨¡æ‹ŸçŽ°å®žä¸­çš„æƒ…å†µï¼Œ˜q™æ ·å¯ä»¥å¾—到在严格的概率æ„义上的预测˜q行旉™—´ã€‚å¦å¤–,对于一个ç»å…¸ç®—法,我们没有必è¦å†åŽ»å¯¹è¯¥½Ž—法˜q›è¡Œæ”¹è¿›åQŒç ”½I¶å®ƒçš„上界和下界åQŒåªéœ€è¦äº†è§£è¯¥½Ž—法的特性,然åŽåœ¨åˆé€‚的时候ä‹É用它ã€?/span>

最åŽï¼Œå½“一个程åºå˜å¿«å’Œå˜æ…¢åQŒè®©è®¡ç®—æœºåæ˜ å‡ºæ¥çš„æ—‰™—´å·®å‡ ä¹Žä¸ä¼šè®©äºÞZñ”生感觉的时候,我们也没有必è¦åŽ»æ”¹è¿›˜q™ä¸ª½Ž—法åQŒä¾‹å¦‚程åºè¿›è¡?/span>1000‹Æ¡åó@环花è´?/span>0.001¿U’,改进åŽäØ“0.1¿U’,在实际应用中通常也åªéœ€è¦å‡ åƒæ¬¡å¾ªçޝåQŒæ­¤æ—¶æˆ‘们就没有必è¦åŽ»èŠ±æ—‰™—´æ¥ç ”½I¶è¿™ä¸ªç®—法了åQŒåªè¦è¯¥½Ž—法能正¼‹®å®Œæˆä“Q务å³å¯ã€?/span>



]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º °¢Í¼Ê²ÊÐ| µü²¿ÏØ| ÎÚÊ²ÏØ| ½ðÕ¯ÏØ| ïÃûÊÐ| ÐÂç­ÏØ| ¹ó¸ÛÊÐ| ¸ßÐÛÊÐ| Ä®ºÓÏØ| È«ÄÏÏØ| É«´ïÏØ| ãþ´¨ÏØ| ¸»ÔÌÏØ| ÎÌÅ£ÌØÆì| »áÔóÏØ| ÆæÌ¨ÏØ| ƽÏçÏØ| Ë«½­| ÁÙ³ÇÏØ| »¨Á«ÊÐ| ÄÏ»ªÏØ| ä»Ë®ÏØ| Äþ²¨ÊÐ| ÎÚº£ÊÐ| ÁúÁêÏØ| ·ÖÒËÏØ| Äþº£ÏØ| ÓñÁú| ÂÞÌïÏØ| ÔóÖÝÏØ| ·áË³ÏØ| á¶ÑÒ| ·ð¸ÔÏØ| ÅÌÉ½ÏØ| ´¾»¯ÏØ| µÂÁî¹þÊÐ| ¹ÌÊ¼ÏØ| ÈÙ²ýÏØ| ²©¿Í| ¾°¹È| °½ººÆì|