ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

ÓÎÏ·Èí¼þ¹¤³Ì±ÊÊÔÌâ-ѸÀ×
2011-04-17 08:57:05 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:1120´Î
Tags£ºÓÎÏ· Èí¼þ¹¤³Ì ÊÔÌâ ѸÀ×
Ò»£º±éÀúÊ÷²¢Çó×î´óÖµÏÔʾÔÚ¶¥¶Ë 

traverse(Node *pNode) 

static result=0; 
result=max(result,pNode->data); 
if(pNode->leftChild) 
traverse(pNode->leftChild); 
if(pNode->rightChild) 
traverse(pNode->rightChild); 
return result; 

ÖÐÐò±éÀú£¬ÔÚmainÀï±ßµ÷ÓÃtraverse((Node*)root) 
ÓõÄÏȸù±éÀú£º 

int get_max(btree *mytree) 

static int max=0; 
if(mytree!=NULL) 

if(maxvalue) 
max=mytree->value; 
get_max(mytree->lchild); 
get_max(mytree->rchild); 

return max; 


¶þ£ºÃ°ÅÝÅÅÐò£º 

main()
{
int i,j,temp;
int a[10];
for(i=0;i<10;i++)
scanf ("%d,",&a[i]);
for(j=0;j<=9;j++)
{
  for (i=0;i<10-j;i++)
if (a[i]>a[i+1])
{
 temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;}
}
}
for(i=1;i<11;i++)
printf("%5d,",a[i] );
printf("\n");
}

--------------
ðÅÝËã·¨
ðÅÝÅÅÐòµÄËã·¨·ÖÎöÓë¸Ä½ø
½»»»ÅÅÐòµÄ»ù±¾Ë¼ÏëÊÇ£ºÁ½Á½±È½Ï´ýÅÅÐò¼Ç¼µÄ¹Ø¼ü×Ö£¬·¢ÏÖÁ½¸ö¼Ç¼µÄ´ÎÐòÏ෴ʱ¼´½øÐн»»»£¬Ö±µ½Ã»Óз´ÐòµÄ¼Ç¼Ϊֹ¡£
Ó¦Óý»»»ÅÅÐò»ù±¾Ë¼ÏëµÄÖ÷ÒªÅÅÐò·½·¨ÓУºÃ°ÅÝÅÅÐòºÍ¿ìËÙÅÅÐò¡£

ðÅÝÅÅÐò

1¡¢ÅÅÐò·½·¨
½«±»ÅÅÐòµÄ¼Ç¼Êý×éR[1..n]´¹Ö±ÅÅÁУ¬Ã¿¸ö¼Ç¼R¿´×÷ÊÇÖØÁ¿ÎªR.keyµÄÆøÅÝ¡£¸ù¾ÝÇáÆøÅݲ»ÄÜÔÚÖØÆøÅÝ֮ϵÄÔ­Ôò£¬´ÓÏÂÍùÉÏɨÃèÊý×éR£º·²É¨Ã赽Υ·´±¾Ô­ÔòµÄÇáÆøÅÝ£¬¾ÍʹÆäÏòÉÏ"Æ®¸¡"¡£Èç´Ë·´¸´½øÐУ¬Ö±µ½×îºóÈκÎÁ½¸öÆøÅݶ¼ÊÇÇáÕßÔÚÉÏ£¬ÖØÕßÔÚÏÂΪֹ¡£
£¨1£©³õʼ
R[1..n]ΪÎÞÐòÇø¡£

£¨2£©µÚÒ»ÌËɨÃè
´ÓÎÞÐòÇøµ×²¿ÏòÉÏÒÀ´Î±È½ÏÏàÁÚµÄÁ½¸öÆøÅݵÄÖØÁ¿£¬Èô·¢ÏÖÇáÕßÔÚÏ¡¢ÖØÕßÔÚÉÏ£¬Ôò½»»»¶þÕßµÄλÖ᣼´ÒÀ´Î±È½Ï(R[n]£¬R[n-1])£¬(R[n-1]£¬R[n-2])£¬¡­£¬(R[2]£¬R[1])£»¶ÔÓÚÿ¶ÔÆøÅÝ(R[j+1]£¬R[j])£¬ÈôR[j+1].keyµÚÒ»ÌËɨÃèÍê±Ïʱ£¬"×îÇá"µÄÆøÅݾÍÆ®¸¡µ½¸ÃÇø¼äµÄ¶¥²¿£¬¼´¹Ø¼ü×Ö×îСµÄ¼Ç¼±»·ÅÔÚ×î¸ßλÖÃR[1]ÉÏ¡£

£¨3£©µÚ¶þÌËɨÃè
ɨÃèR[2..n]¡£É¨ÃèÍê±Ïʱ£¬"´ÎÇá"µÄÆøÅÝÆ®¸¡µ½R[2]µÄλÖÃÉÏ¡­¡­
×îºó£¬¾­¹ýn-1 ÌËɨÃè¿ÉµÃµ½ÓÐÐòÇøR[1..n]
×¢Ò⣺
µÚiÌËɨÃèʱ£¬R[1..i-1]ºÍR[i..n]·Ö±ðΪµ±Ç°µÄÓÐÐòÇøºÍÎÞÐòÇø¡£É¨ÃèÈÔÊÇ´ÓÎÞÐòÇøµ×²¿ÏòÉÏÖ±ÖÁ¸ÃÇø¶¥²¿¡£É¨ÃèÍê±Ïʱ£¬¸ÃÇøÖÐ×îÇáÆøÅÝÆ®¸¡µ½¶¥²¿Î»ÖÃRÉÏ£¬½á¹ûÊÇR[1..i]±äΪеÄÓÐÐòÇø¡£

2¡¢Ã°ÅÝÅÅÐò¹ý³ÌʾÀý
¶Ô¹Ø¼ü×ÖÐòÁÐΪ49 38 65 97 76 13 27 49µÄÎļþ½øÐÐðÅÝÅÅÐòµÄ¹ý³Ì

3¡¢ÅÅÐòËã·¨
£¨1£©·ÖÎö
ÒòΪÿһÌËÅÅÐò¶¼Ê¹ÓÐÐòÇøÔö¼ÓÁËÒ»¸öÆøÅÝ£¬ÔÚ¾­¹ýn-1ÌËÅÅÐòÖ®ºó£¬ÓÐÐòÇøÖоÍÓÐn-1¸öÆøÅÝ£¬¶øÎÞÐòÇøÖÐÆøÅݵÄÖØÁ¿×ÜÊÇ´óÓÚµÈÓÚÓÐÐòÇøÖÐÆøÅݵÄÖØÁ¿£¬ËùÒÔÕû¸öðÅÝÅÅÐò¹ý³ÌÖÁ¶àÐèÒª½øÐÐn-1ÌËÅÅÐò¡£
ÈôÔÚijһÌËÅÅÐòÖÐδ·¢ÏÖÆøÅÝλÖõĽ»»»£¬Ôò˵Ã÷´ýÅÅÐòµÄÎÞÐòÇøÖÐËùÓÐÆøÅݾùÂú×ãÇáÕßÔÚÉÏ£¬ÖØÕßÔÚϵÄÔ­Ôò£¬Òò´Ë£¬Ã°ÅÝÅÅÐò¹ý³Ì¿ÉÔÚ´ËÌËÅÅÐòºóÖÕÖ¹¡£Îª´Ë£¬ÔÚÏÂÃæ¸ø³öµÄËã·¨ÖУ¬ÒýÈëÒ»¸ö²¼¶ûÁ¿exchange£¬ÔÚÿÌËÅÅÐò¿ªÊ¼Ç°£¬ÏȽ«ÆäÖÃΪFALSE¡£ÈôÅÅÐò¹ý³ÌÖз¢ÉúÁ˽»»»£¬Ôò½«ÆäÖÃΪTRUE¡£¸÷ÌËÅÅÐò½áÊøʱ¼ì²éexchange£¬ÈôδÔø·¢Éú¹ý½»»»ÔòÖÕÖ¹Ëã·¨£¬²»ÔÙ½øÐÐÏÂÒ»ÌËÅÅÐò¡£

£¨2£©¾ßÌåËã·¨
void BubbleSort(SeqList R)
{ //R£¨l..n)ÊÇ´ýÅÅÐòµÄÎļþ£¬²ÉÓÃ×ÔÏÂÏòÉÏɨÃ裬¶ÔR×öðÅÝÅÅÐò
int i£¬j£»
Boolean exchange£» //½»»»±êÖ¾
for(i=1;iexchange=FALSE£» //±¾ÌËÅÅÐò¿ªÊ¼Ç°£¬½»»»±ê־ӦΪ¼Ù
for(j=n-1;j>=i£»j--) //¶Ôµ±Ç°ÎÞÐòÇøR[i..n]×ÔÏÂÏòÉÏɨÃè
if(R[j+1].keyR[0]=R[j+1]£» //R[0]²»ÊÇÉÚ±ø£¬½ö×öÔÝ´æµ¥Ôª
R[j+1]=R[j]£»
R[j]=R[0]£»
exchange=TRUE£» //·¢ÉúÁ˽»»»£¬¹Ê½«½»»»±êÖ¾ÖÃΪÕæ
}
if(!exchange) //±¾ÌËÅÅÐòδ·¢Éú½»»»£¬ÌáÇ°ÖÕÖ¹Ëã·¨
return£»
} //endfor(ÍâÑ­»·)
} //BubbleSort
4¡¢Ëã·¨·ÖÎö
£¨1£©Ëã·¨µÄ×îºÃʱ¼ä¸´ÔÓ¶È
ÈôÎļþµÄ³õʼ״̬ÊÇÕýÐòµÄ£¬Ò»ÌËɨÃè¼´¿ÉÍê³ÉÅÅÐò¡£ËùÐèµÄ¹Ø¼ü×ֱȽϴÎÊýCºÍ¼Ç¼Òƶ¯´ÎÊýM¾ù´ïµ½×îСֵ£º
Cmin=n-1
Mmin=0¡£
ðÅÝÅÅÐò×îºÃµÄʱ¼ä¸´ÔÓ¶ÈΪO(n)¡£

£¨2£©Ëã·¨µÄ×ʱ¼ä¸´ÔÓ¶È
Èô³õʼÎļþÊÇ·´ÐòµÄ£¬ÐèÒª½øÐÐn-1ÌËÅÅÐò¡£Ã¿ÌËÅÅÐòÒª½øÐÐn-i´Î¹Ø¼ü×ֵıȽÏ(1¡Üi¡Ün-1)£¬ÇÒÿ´Î±È½Ï¶¼±ØÐëÒƶ¯¼Ç¼Èý´ÎÀ´´ïµ½½»»»¼Ç¼λÖá£ÔÚÕâÖÖÇé¿öÏ£¬±È½ÏºÍÒƶ¯´ÎÊý¾ù´ïµ½×î´óÖµ£º
Cmax=n(n-1)/2=O(n2)
Mmax=3n(n-1)/2=O(n2)
ðÅÝÅÅÐòµÄ×ʱ¼ä¸´ÔÓ¶ÈΪO(n2)¡£

£¨3£©Ëã·¨µÄƽ¾ùʱ¼ä¸´ÔÓ¶ÈΪO(n2)
ËäȻðÅÝÅÅÐò²»Ò»¶¨Òª½øÐÐn-1ÌË£¬µ«ÓÉÓÚËüµÄ¼Ç¼Òƶ¯´ÎÊý½Ï¶à£¬¹Êƽ¾ùʱ¼äÐÔÄܱÈÖ±½Ó²åÈëÅÅÐòÒª²îµÃ¶à¡£

£¨4£©Ëã·¨Îȶ¨ÐÔ
ðÅÝÅÅÐòÊǾ͵ØÅÅÐò£¬ÇÒËüÊÇÎȶ¨µÄ¡£

5¡¢Ëã·¨¸Ä½ø
ÉÏÊöµÄðÅÝÅÅÐò»¹¿É×öÈçϵĸĽø£º
(1)¼Çס×îºóÒ»´Î½»»»·¢ÉúλÖÃlastExchangeµÄðÅÝÅÅÐò
ÔÚÿÌËɨÃèÖУ¬¼Çס×îºóÒ»´Î½»»»·¢ÉúµÄλÖÃlastExchange£¬£¨¸ÃλÖÃ֮ǰµÄÏàÁڼǼ¾ùÒÑÓÐÐò£©¡£ÏÂÒ»ÌËÅÅÐò¿ªÊ¼Ê±£¬R[1..lastExchange-1]ÊÇÓÐÐòÇø£¬R[lastExchange..n]ÊÇÎÞÐòÇø¡£ÕâÑù£¬Ò»ÌËÅÅÐò¿ÉÄÜʹµ±Ç°ÓÐÐòÇøÀ©³ä¶à¸ö¼Ç¼£¬´Ó¶ø¼õÉÙÅÅÐòµÄÌËÊý¡£¾ßÌåËã·¨¡¾²Î¼ûÏ°Ìâ¡¿¡£

(2) ¸Ä±äɨÃè·½ÏòµÄðÅÝÅÅÐò
¢ÙðÅÝÅÅÐòµÄ²»¶Ô³ÆÐÔ
ÄÜÒ»ÌËɨÃèÍê³ÉÅÅÐòµÄÇé¿ö£º
Ö»ÓÐ×îÇáµÄÆøÅÝλÓÚR[n]µÄλÖã¬ÆäÓàµÄÆøÅݾùÒÑÅźÃÐò£¬ÄÇôҲֻÐèÒ»ÌËɨÃè¾Í¿ÉÒÔÍê³ÉÅÅÐò¡£
¡¾Àý¡¿¶Ô³õʼ¹Ø¼ü×ÖÐòÁÐ12£¬18£¬42£¬44£¬45£¬67£¬94£¬10¾Í½öÐèÒ»ÌËɨÃè¡£
ÐèÒªn-1ÌËɨÃèÍê³ÉÅÅÐòÇé¿ö£º
µ±Ö»ÓÐ×îÖصÄÆøÅÝλÓÚR[1]µÄλÖã¬ÆäÓàµÄÆøÅݾùÒÑÅźÃÐòʱ£¬ÔòÈÔÐè×ön-1ÌËɨÃè²ÅÄÜÍê³ÉÅÅÐò¡£
¡¾Àý¡¿¶Ô³õʼ¹Ø¼ü×ÖÐòÁУº94£¬10£¬12£¬18£¬42£¬44£¬45£¬67¾ÍÐèÆßÌËɨÃè¡£

¢ÚÔì³É²»¶Ô³ÆÐÔµÄÔ­Òò
ÿÌËɨÃè½öÄÜʹ×îÖØÆøÅÝ"ϳÁ"Ò»¸öλÖã¬Òò´ËʹλÓÚ¶¥¶ËµÄ×îÖØÆøÅÝϳÁµ½µ×²¿Ê±£¬Ðè×ön-1ÌËɨÃè¡£

¢Û¸Ä½ø²»¶Ô³ÆÐԵķ½·¨
ÔÚÅÅÐò¹ý³ÌÖн»Ìæ¸Ä±äɨÃè·½Ïò£¬¿É¸Ä½ø²»¶Ô³ÆÐÔ¡£ 

3¡¢½«ÈÎÒâÒ»¸öÓ¢Óï¾ä×ÓÈ磺¡°I LOVE YOU¡£¡±µÄµ¥´Ê°´ÄæÐòÅųö³É¡°YOU LOVE I¡£¡±µÄÐÎʽ
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºÍøÒ×±ÊÊÔÌ⣨ÕæÌ⣩-ÍøÒ×163 ÏÂһƪ£º2010Äê11ÔÂÌÚѶ±ÊÊÔºÍÃæÊÔ

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿