Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

¹é²¢ÅÅÐòËã·¨ C´úÂëʵÏÖ

ºÏ²¢ÅÅÐò£¨MERGE SORT£©ÊÇÓÖÒ»À಻ͬµÄÅÅÐò·½·¨£¬ºÏ²¢µÄº¬Òå¾ÍÊǽ«Á½¸ö»òÁ½¸öÒÔÉϵÄÓÐÐòÊý¾ÝÐòÁкϲ¢³ÉÒ»¸öеÄÓÐÐòÊý¾ÝÐòÁУ¬Òò´ËËüÓֽй鲢Ëã·¨¡£ËüµÄ»ù±¾Ë¼Ïë¾ÍÊǼÙÉèÊý×éAÓÐN¸öÔªËØ£¬ÄÇô¿ÉÒÔ¿´³ÉÊý×éAÊÇÓÖN¸öÓÐÐòµÄ×ÓÐòÁÐ×é³É£¬Ã¿¸ö×ÓÐòÁеij¤¶ÈΪ1£¬È»ºóÔÙÁ½Á½ºÏ²¢£¬µÃµ½ÁËÒ»¸ö N/2 ¸ö³¤¶ÈΪ2»ò1µÄÓÐÐò×ÓÐòÁУ¬ÔÙÁ½Á½ºÏ²¢£¬Èç´ËÖØ¸´£¬ÖµµÃµÃµ½Ò»¸ö³¤¶ÈΪNµÄÓÐÐòÊý¾ÝÐòÁÐΪֹ£¬ÕâÖÖÅÅÐò·½·¨³ÆÎª2—·ºÏ²¢ÅÅÐò¡£
¡¡¡¡ÀýÈçÊý×éAÓÐ7¸öÊý¾Ý£¬·Ö±ðÊÇ£º 49 38 65 97 76 13 27£¬ÄÇô²ÉÓù鲢ÅÅÐòËã·¨µÄ²Ù×÷¹ý³ÌÈçͼ7Ëùʾ£º
¡¡¡¡³õʼֵ [49] [38] [65] [97] [76] [13] [27]
¡¡¡¡¿´³ÉÓɳ¤¶ÈΪ1µÄ7¸ö×ÓÐòÁÐ×é³É
¡¡¡¡µÚÒ»´ÎºÏ²¢Ö®ºó [38 49] [65 97] [13 76] [27]
¡¡¡¡¿´³ÉÓɳ¤¶ÈΪ1»ò2µÄ4¸ö×ÓÐòÁÐ×é³É
¡¡¡¡µÚ¶þ´ÎºÏ²¢Ö®ºó [38 49 65 97] [13 27 76]
¡¡¡¡¿´³ÉÓɳ¤¶ÈΪ4»ò3µÄ2¸ö×ÓÐòÁÐ×é³É
¡¡¡¡µÚÈý´ÎºÏ²¢Ö®ºó [13 27 38 49 65 76 97]
¡¡¡¡ºÏ²¢Ëã·¨µÄºËÐIJÙ×÷¾ÍÊǽ«Ò»Î¬Êý×éÖÐǰºóÏàÁÚµÄÁ½¸öÁ½¸öÓÐÐòÐòÁкϲ¢³ÉÒ»¸öÓÐÐòÐòÁС£ºÏ²¢Ëã·¨Ò²¿ÉÒÔ²ÉÓõݹéËã·¨À´ÊµÏÖ£¬ÐÎʽÉϽÏΪ¼òµ¥,µ«ÊµÓÃÐԺܲºÏ²¢Ëã·¨µÄºÏ²¢´ÎÊýÊÇÒ»¸ö·Ç³£ÖØÒªµÄÁ¿,¸ù¾Ý¼ÆËãµ±Êý×éÖÐÓÐ3µ½4¸öÔªËØÊ±,ºÏ²¢´ÎÊýÊÇ2´Î,µ±ÓÐ5µ½8¸öÔªËØÊ±,ºÏ²¢´ÎÊýÊÇ3´Î,µ±ÓÐ9µ½16¸öÔªËØÊ±,ºÏ²¢´ÎÊýÊÇ4´Î£¬°´ÕÕÕâÒ»¹æÂÉ,µ±ÓÐN¸ö×ÓÐòÁÐʱ¿ÉÒÔÍÆ¶Ï³öºÏ²¢µÄ´ÎÊýÊÇX(2 >=N,·ûºÏ´ËÌõ¼þµÄ×îСÄǸöX)¡£
¡¡¡¡Æäʱ¼ä¸´ÔÓ¶ÈΪ£ºO(nlogn).ËùÐ踨Öú´æ´¢¿Õ¼äΪ£ºO(n)
¡¡¡¡¹é²¢Ëã·¨ÈçÏ£º
   #include<stdio.h>
#include<stdlib.h>
typedef int RecType;//ÒªÅÅÐòÔªËØÀàÐÍ
void Merge(RecType *R,int low,int m,int high)
{
//½«Á½¸öÓÐÐòµÄ×ÓÎļþR[low..m)ºÍR[m+1..high]¹é²¢³ÉÒ»¸öÓÐÐòµÄ×ÓÎļþR[low..high]
int i=low,j=m+1,p=0; //Öóõʼֵ
RecType *R1; //R1ÊǾֲ¿ÏòÁ¿
R1=(RecType *)malloc((high-low+1)*sizeof(RecType));
if(!R1)
{
return; //ÉêÇë¿Õ¼äʧ°Ü
}
while(i<=m&&j<=high) //Á½×ÓÎļþ·Ç¿ÕʱȡÆäСÕßÊä³öµ½R1[p]ÉÏ
{
R1[p++]=(R[i]<=R[j])?R[i++]:R[j++];
}
while(i<=m) //ÈôµÚ1¸ö×ÓÎļþ·Ç¿Õ£¬Ôò¸´ÖÆÊ£Óà¼Ç¼µ½R1ÖÐ
{
R1[p++]=R[i++


Ïà¹ØÎĵµ£º

½â¶Á¸´ÔÓµÄC/C++ÉùÃ÷[ʵսƪ]

ÕâÊÇÈëÃÅÆªÖÐÌáµ½µÄÄÇÁ½Ì⣺
int * (* (*fp1) (int) ) [10];
int *( *( *arr[5])())();
½â´ðÈçÏÂ
1.int * (* (*fp1) (int) ) [10];
´ÓÍâÍùÄÚ½øÐзÖÎö
a.typedef P=(* (*fp1) (int) )£¬ÄÇôԭÉùÃ÷¸ÄдΪ int*P[10]£¬ÕâÊÇÒ»¸öÓÐ10¸öÔªËØµÄÊý×飬ÿ¸öÔªËØ¶¼ÊÇÒ»¸öÖ¸ÏòÕûÐÍÊýµÄÖ¸Õë
b.typedef Q=(*fp1)£¬ÄÇôP¸ÄдΪ *Q( ......

UbuntuÖÐNetBeans C/C++ÅäÖᢱàÒë

ϵͳ»·¾³£ºUbuntu 9.04
Èí¼þ»·¾³£ºNetBeans 6.7.1 C/C++ ¡¢JDK1.6.0_16
±¾´ÎÄ¿µÄ£ºÍê³ÉNetBeans 6.7.1 C/C++ µÄÅäÖù¤×÷¡¢±àÒë²âÊÔ¼°¶ÔÖÐÎÄÖ§³Ö
      Ê×ÏÈ´Ó¹ÙÍøÉÏÏÂÔØ×îаæµÄNetbeans Ñ¡ÔñC/C++¹¤×÷̨ÏÂÔØ[µã»÷½øÈë]£¬µ¯³öµÄÐÂÍøÒ³½«»á×Ô¶¯ÏÂÔØ£¬ÈçÏÂͼ£º
ÔÚ½øÐа²×°Ö®Ç°£¬ÎÒÃÇÏȰ²×°JDK£¬ ......

CÍ·Îļþ±àдԭÔò

ÔÚʹÓÃCÓïÑÔ±àд´óÐ͹¤³ÌʱҪÓõ½ÃæÏò¶ÔÏóÓïÑÔÖеÄÒ»Ð©ÌØÐÔ£¨ÄÚºËÖÐijЩ²¿·Ö¾ÍÓ¦ÓÃÁËÕâÐ©ÌØÐÔ£©¡£CÓïÑÔÊÇ»ùÓÚÎļþµÄÀ࣬static¹Ø¼ü×ÖÉùÃ÷˽ÓÐÊý¾Ý³ÉÔ±£¬¹«ÓÐÊý¾Ý³ÉÔ±±ØÐ붨Ò嵽ͷÎļþ£¬»òÓÉÆäËüÎļþʹÓÃextern¹Ø¼ü×ÖÉùÃ÷À´Ê¹Óᣵ«ºóÕßÒýÓùØÏµ²»ÇåÎú¡£Í·Îļþ¾Í³ÉÁ˹«ÓÐÊý¾Ý³ÉÔ±ÉùÃ÷µÄµØ·½¡£
Í·ÎļþÖÐÓ¦¸Ã°üº¬ÒÔϼ°·½ÃæÄÚ ......

cÖкÍjavaÖÐÊý×éµÄÇø±ð

  ¶ÔÓÚÔ­ÓïÀàÐ͵ÄÊý×飬Èçint[]   a,ÔÚCÀïÃæÖ»ÒªÕâÑù¶¨ÒåÖ®ºó¾Í¿ÉÒÔÓÃa[i]ʹÓÃÁË£¬µ«ÊÇÔÚJAVAÀïÃæÊDz»Ðе쬱ØÐëÓÃint[]   a   =   new   int[LENGTH];À´ÎªÊý×é·ÖÅä¿Õ¼ä¡£ÕâÀïµÄa¸üÓ¦¸Ã¿´³ÉCÀïÃæµÄÖ¸Õ룬ËüºÍCÀïÃæµÄint*   aÊÇÒ»ÑùµÄ£¬ÒòΪÕâ¸öa£¨CÀïÃæµÄ£©Ò²ÒªÏÈmallocÒ»¸ö¿Õ¼äÖ®ºó²Å¿ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ