¹é²¢ÅÅÐòËã·¨ 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++
Ïà¹ØÎĵµ£º
ϵͳ»·¾³£º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++µÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·Ö³ÉÒÔϼ¸¸ö²¿·Ö£º
¡¡¡¡1¡¢Õ»Çø£¨stack£©£ºÓɱàÒëÆ÷×Ô¶¯·ÖÅäºÍÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ¡¢¾Ö²¿±äÁ¿µÄÖµµÈ£¬ÉõÖÁº¯ÊýµÄµ÷Óùý³Ì¶¼ÊÇÓÃÕ»À´Íê³É¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
¡¡¡¡2¡¢¶ÑÇø£¨heap£© £ºÒ»°ãÓɳÌÐòÔ±ÊÖ¶¯ÉêÇëÒÔ¼°ÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøÊ±¿ÉÄÜÓÉOS»ØÊÕ ......
C×Ö·û´®³¤¶È¶¨Ò广·¶
£¨×ªÔØÇë×¢Ã÷À´Ô´ÓÚ½ðÇìµÄרÀ¸£©
ÒòΪ×ÜÊǼûµ½C×Ö·û´®³¤¶ÈÏà¹ØµÄ´íÎó, ËùÓж¨¸ö¹æ·¶³öÀ´, ÓÐÀûÓÚ¼õÉÙ´íÎó.
¹Ø¼üÔÚÓÚC×Ö·û´®Óиö½áβ0, ´¦ÀíʱÐèҪעÒâ.
¶¨Òå×Ö·û´®³¤¶ÈÓÐÁ½ÖÖ·½Ê½, Ò»ÖÖÊÇÓÃ×Ö·û´®µÄ´óС, Ò»ÖÖÊÇ×Ö·û´®µÄ³¤¶È.
×Ö·û´®µÄ´óС¼´ÄÚ´æ¿Õ¼äµÄ´óС, ¶ø´®³¤¶È¼Ó1²ÅÊÇËùÐè¿Õ¼ä.   ......
¶¨Ò壺Éèa¶ÔbµÄ³Ë·¨ÄæÔªÊÇxÔò¿ÉÒÔ¼ÇΪa*x=1 mod b£¬¼´aºÍxµÄ»ý³ýÒÔbµÄÓàÊýÊÇ1£»
³Ë·¨ÄæÔª³£ÓÃËã·¨ÊÇÅ·¼¸ÀïµÂËã·¨£º
//Ëã·¨Çód¹ØÓÚÄ£fµÄ³Ë·¨ÄæÔªd-1 £¬¼´ d* d-1 mod f = 1
¡¡¡¡1 ¡£(X1£¬X2£¬X3) := (1£¬0£¬f)£» (Y1£¬Y2£¬Y3) := (0£¬1£¬d)
¡¡¡¡2¡£ if (Y3=0) then return d-1 = null //ÎÞÄæÔª
......
ÓüÇʱ¾Ð´C³ÌÐò£¬²¢±àÒë¡£ ¸Õ×°ºÃµÄϵͳ
ÖÐÒѾÓÐGCCÁË£¬µ«ÊÇÕâ¸öGCCʲôÎļþ¶¼²»ÄܱàÒ룬ÒòΪûÓÐһЩ±ØÐëµÄÍ·Îļþ£¬ËùÒÔÒª°²×°build-essentialÕâ¸öÈí¼þ
°ü£¬°²×°ÁËÕâ¸ö°ü»á×Ô¶¯°²×°ÉÏg++,libc6-dev,linux
-libc-dev,libstdc++6-4.1-devµÈһЩ±ØÐëµÄÈí¼þºÍÍ·ÎļþµÄ¿â¡£
¿ÉÒÔÔÚÐÂÁ¢µÃÀïÃæË ......