ϰÌâ1
1.
ͼÂÛµ®ÉúÓÚÆßÇÅÎÊÌâ¡£³öÉúÓÚÈðÊ¿µÄΰ´óÊýѧ¼ÒÅ·À£¨Leonhard Euler£¬1707¡ª1783£©Ìá³ö²¢½â¾öÁ˸ÃÎÊÌâ¡£ÆßÇÅÎÊÌâÊÇÕâÑùÃèÊöµÄ£º±±Çø Ò»¸öÈËÊÇ·ñÄÜÔÚÒ»´Î²½ÐÐÖд©Ô½¸çÄá˹±¤£¨ÏÖ
¶«Çø ÔڽмÓÀïÄþ¸ñÀÕ£¬ÔÚ²¨Â޵ĺ£Äϰ¶£©³ÇÖÐÈ«²¿µºÇø µÄÆß×ùÇÅºó»Øµ½Æðµã£¬ÇÒÿ×ùÇÅÖ»¾¹ýÒ»´Î£¬
ÄÏÇø ͼ1.7ÊÇÕâÌõºÓÒÔ¼°ºÓÉϵÄÁ½¸öµººÍÆß×ùÇŵÄ
ͼ1.7 ÆßÇÅÎÊÌâ
²Ýͼ¡£Ç뽫¸ÃÎÊÌâµÄÊý¾ÝÄ£ÐͳéÏó³öÀ´£¬²¢ÅжϴËÎÊÌâÊÇ·ñÓн⡣
ÆßÇÅÎÊÌâÊôÓÚÒ»±Ê»ÎÊÌâ¡£ ÊäÈ룺һ¸öÆðµã Êä³ö£ºÏàͬµÄµã 1£¬ Ò»´Î²½ÐÐ
2£¬ ¾¹ýÆß×ùÇÅ£¬ÇÒÿ´ÎÖ»¾Àú¹ýÒ»´Î 3£¬ »Øµ½Æðµã
¸ÃÎÊÌâÎ޽⣺ÄÜÒ»±Ê»µÄͼÐÎÖ»ÓÐÁ½ÀࣺһÀàÊÇËùÓеĵ㶼ÊÇżµã¡£ÁíÒ»ÀàÊÇÖ»Óжþ¸öÆæµãµÄͼÐΡ£
2£®ÔÚÅ·¼¸ÀïµÂÌá³öµÄÅ·¼¸ÀïµÂËã·¨ÖУ¨¼´×î³õµÄÅ·¼¸ÀïµÂËã·¨£©ÓõIJ»Êdzý·¨¶øÊǼõ·¨¡£ÇëÓÃα´úÂëÃèÊöÕâ¸ö°æ±¾µÄÅ·¼¸ÀïµÂËã·¨ 1.r=m-n
2.Ñ»·Ö±µ½r=0 2.1 m=n 2.2 n=r 2.3 r=m-n 3 Êä³öm
3£®Éè¼ÆËã·¨ÇóÊý×éÖÐÏà²î×îСµÄÁ½¸öÔªËØ£¨³ÆÎª×î½Ó½üÊý£©µÄ²î¡£ÒªÇó·Ö±ð¸ø³öα´úÂëºÍC++ÃèÊö¡£
//²ÉÓ÷ÖÖη¨
//¶ÔÊý×éÏȽøÐпìËÙÅÅÐò //ÔÚÒÀ´Î±È½ÏÏàÁڵIJî #include
int partions(int b[],int low,int high) {
int prvotkey=b[low]; b[0]=b[low]; while (low while (low b[low]=b[high]; while (low b[high]=b[low]; } b[low]=b[0]; return low; } void qsort(int l[],int low,int high) { int prvotloc; if(low prvotloc=partions(l,low,high); //½«µÚÒ»´ÎÅÅÐòµÄ½á¹û×÷ΪÊàÖá qsort(l,low,prvotloc-1); //µÝ¹éµ÷ÓÃÅÅÐò ÓÉlow µ½prvotloc-1 qsort(l,prvotloc+1,high); //µÝ¹éµ÷ÓÃÅÅÐò ÓÉ prvotloc+1µ½ high } } void quicksort(int l[],int n) { qsort(l,1,n); //µÚÒ»¸ö×÷ΪÊàÖá £¬´ÓµÚÒ»¸öÅŵ½µÚn¸ö } int main() { int a[11]={0,2,32,43,23,45,36,57,14,27,39}; int value=0;//½«×îС²îµÄÖµ¸³Öµ¸øvalue for (int b=1;b<11;b++) cout< quicksort(a,11); for(int i=0;i!=9;++i) { if( (a[i+1]-a[i])<=(a[i+2]-a[i+1]) ) value=a[i+1]-a[i]; else value=a[i+2]-a[i+1]; } cout< return 0; } 4£® ÉèÊý×éa[n]ÖеÄÔªËØ¾ù²»ÏàµÈ£¬Éè¼ÆËã·¨ÕÒ³öa[n]ÖÐÒ»¸ö¼È²»ÊÇ×î´óÒ²²»ÊÇ×îСµÄÔªËØ£¬²¢ËµÃ÷×Çé¿öϵıȽϴÎÊý¡£ÒªÇó·Ö±ð¸ø³öα´úÂëºÍC++ÃèÊö¡£ #include int main() { int a[]={1,2,3,6,4,9,0}; int mid_value=0;//½«¡°¼È²»ÊÇ×î´óÒ²²»ÊÇ×îСµÄÔªËØ¡±µÄÖµ¸³Öµ¸øËü for(int i=0;i!=4;++i) { if(a[i+1]>a[i]&&a[i+1]a[i+2]) { mid_value=a[i+1]; cout< 5. ±àд³ÌÐò£¬ÇónÖÁÉÙΪ¶à´óʱ£¬n¸ö¡°1¡±×é³ÉµÄÕûÊýÄܱ»2013Õû³ý¡£ #include int main() { double value=0; for(int n=1;n<=10000 ;++n) { value=value*10+1; if(value 13==0) { cout<<\ÖÁÉÙΪ:\ break; } }//for return 0; } 6. ¼ÆËã¦ÐÖµµÄÎÊÌâÄܾ«È·Çó½âÂ𣿱àд³ÌÐò£¬Çó½âÂú×ã¸ø¶¨¾«¶ÈÒªÇóµÄ¦ÐÖµ #include int main () { double a,b; double arctan(double x);//ÉùÃ÷ a = 16.0*arctan(1/5.0); b = 4.0*arctan(1/239); cout << \ return 0£» } double arctan(double x) { int i=0; double r=0,e,f,sqr;//¶¨ÒåËĸö±äÁ¿³õ sqr = x*x; e = x; while (e/i>1e-15)//¶¨Ò徫¶È·¶Î§ { f = e/i;//fÊÇÿ´ÎrÐèÒªµþ¼ÓµÄ·½³Ì r = (i%4==1)?r+f:r-f; e = e*sqr;//eÿ´Î³ËÓÚxµÄƽ·½ i+=2;//iÿ´Î¼Ó2 }//while return r; } 7. Ê¥¾ÉÏ˵£ºÉñ6Ìì´´ÔìÌìµØÍòÓУ¬µÚ7ÈÕ°²Ðª¡£ÎªÊ²Ã´ÊÇ6ÌìÄØ£¿ÈκÎÒ»¸ö×ÔÈ»ÊýµÄÒòÊýÖж¼ÓÐ1ºÍËü±¾Éí£¬ËùÓÐСÓÚËü±¾ÉíµÄÒòÊý³ÆÎªÕâ¸öÊýµÄÕæÒòÊý£¬Èç¹ûÒ»¸ö×ÔÈ»ÊýµÄÕæÒòÊýÖ®ºÍµÈÓÚËü±¾Éí£¬Õâ¸ö×ÔÈ»Êý³ÆÎªÍêÃÀÊý¡£ÀýÈ磬6=1+2+3£¬Òò´Ë6ÊÇÍêÃÀÊý¡£Éñ6Ìì´´ÔìÊÀ½ç£¬°µÊ¾×Ÿô´ÔìÊÇÍêÃÀµÄ¡£Éè¼ÆËã·¨£¬Åжϸø¶¨µÄ×ÔÈ»ÊýÊÇ·ñÊÇÍêÃÀÊý #include int main() { int value, k=1; cin>>value; for (int i = 2;i!=value;++i) { while (value % i == 0 ) { k+=i;//kΪ¸Ã×ÔÈ»ÊýËùÓÐÒò×ÓÖ®ºÍ value = value/ i; } }//for if(k==value) cout<<\¸Ã×ÔÈ»ÊýÊÇÍêÃÀÊý\ else cout<<\¸Ã×ÔÈ»Êý²»ÊÇÍêÃÀÊý\ return 0; } 8. ÓÐ4¸öÈË´òËã¹ýÇÅ£¬Õâ¸öÇÅÿ´Î×î¶àÖ»ÄÜÓÐÁ½¸öÈËͬʱͨ¹ý¡£ËûÃǶ¼ÔÚÇŵÄijһ¶Ë£¬²¢ÇÒÊÇÔÚÍíÉÏ£¬¹ýÇÅÐèÒªÒ»Ö»ÊÖµçͲ£¬¶øËûÃÇÖ»ÓÐÒ»Ö»ÊÖµçͲ¡£Õâ¾ÍÒâζ×ÅÁ½¸öÈ˹ýÇźó±ØÐëÓÐÒ»¸öÈ˽«ÊÖµçͲ´ø»ØÀ´¡£Ã¿¸öÈË×ß·µÄËÙ¶ÈÊDz»Í¬µÄ£º¼×¹ýÇÅÒªÓÃ1·ÖÖÓ£¬ÒÒ¹ýÇÅÒªÓÃ2·ÖÖÓ£¬±û¹ýÇÅÒªÓÃ5·ÖÖÓ£¬¶¡¹ýÇÅÒªÓÃ10·ÖÖÓ£¬ÏÔÈ»£¬Á½¸öÈË×ß·µÄËٶȵÈÓÚÆäÖнÏÂýÄǸöÈ˵ÄËÙ¶È£¬ÎÊÌâÊÇËûÃÇÈ«²¿¹ýÇÅ×îÉÙÒªÓö೤ʱ¼ä£¿ ÓÉÓÚ¼×¹ýÇÅʱ¼ä×î¶Ì£¬ÄÇôÿ´Î´«µÝÊÖµçµÄ¹¤×÷Ó¦Óм×Íê³É ¼×ÿ´Î·Ö±ð´ø×ÅÒÒ±û¶¡¹ýÇÅ ÀýÈ磺 µÚÒ»ÌË£º¼×£¬ÒÒ¹ýÇÅÇÒ¼×»ØÀ´ µÚ¶þÌË£º¼×£¬±û¹ýÇÅÇÒ¼×»ØÀ´ µÚÒ»ÌË£º¼×£¬¶¡¹ýÇÅ Ò»¹²ÓÃʱ19Сʱ 9£®Å·¼¸ÀïµÂÓÎÏ·£º¿ªÊ¼µÄʱºò£¬°×°åÉÏÓÐÁ½¸ö²»ÏàµÈµÄÕýÕûÊý£¬Á½¸öÍæ¼Ò½»ÌæÐж¯£¬Ã¿´ÎÐж¯Ê±£¬µ±Ç°Íæ¼Ò¶¼±ØÐëÔÚ°×°åÉÏд³öÈÎÒâÁ½¸öÒѾ³öÏÖÔÚ°åÉϵÄÊý×ֵIJ¶øÇÒÕâ¸öÊý×Ö±ØÐëÊÇеģ¬Ò²¾ÍÊÇ˵£¬ºÍ°×°åÉϵÄÈκÎÒ»¸öÒÑÓеÄÊý×Ö¶¼²»Ïàͬ£¬µ±Ò»·½ÔÙҲд²»³öÐÂÊý×Öʱ£¬Ëû¾ÍÊäÁË¡£ÇëÎÊ£¬ÄãÊÇÑ¡ÔñÏÈÐж¯»¹ÊǺóÐж¯£¿ÎªÊ²Ã´£¿ Éè×î³õÁ½¸öÊý½Ï´óµÄΪa, ½ÏСµÄΪb£¬Á½¸öÊýµÄ×î´ó¹«Ô¼ÊýΪfactor¡£ Ôò×îÖÕÄܳöÏÖµÄÊý°üÀ¨: factor, factor*2, factor*3, ..., factor*(a/factor)=a. Ò»¹²a/factor¸ö¡£ Èç¹ûa/factor ÊÇÆæÊý£¬¾ÍÑ¡ÔñÏÈÐж¯£»·ñÔò¾ÍºóÐж¯¡£ ϰÌâ2 1£®Èç¹ûT1(n)=O(f (n))£¬T2(n)=O(g(n))£¬½â´ðÏÂÁÐÎÊÌ⣺ £¨1£©Ö¤Ã÷¼Ó·¨¶¨Àí£ºT1(n)£«T2(n)=max{O(f (n)), O(g(n))}£» £¨2£©Ö¤Ã÷³Ë·¨¶¨Àí£ºT1(n)¡ÁT2(n)=O(f (n))¡ÁO(g(n))£» £¨3£©¾ÙÀý˵Ã÷ÔÚʲôÇé¿öÏÂÓ¦Óüӷ¨¶¨ÀíºÍ³Ë·¨¶¨Àí¡£ ,£¨1£© £¨2£© £¨3£©±ÈÈçÔÚ for£¨f(n)£© { for(g(n)) } ÖÐÓ¦¸ÃÓó˷¨¶¨Àí Èç¹ûÔÚ¡°½²Á½¸öÊý×éºÏ²¢³ÉÒ»¸öÊý×éʱ¡±£¬Ó¦µ±Óüӷ¨¶¨Àí 2£®¿¼ÂÇÏÂÃæµÄËã·¨£¬»Ø´ðÏÂÁÐÎÊÌ⣺Ëã·¨Íê³Éʲô¹¦ÄÜ£¿Ëã·¨µÄ»ù±¾Óï¾äÊÇʲô£¿»ù±¾Óï¾äÖ´ÐÐÁ˶àÉٴΣ¿Ëã·¨µÄʱ¼ä¸´ÔÓÐÔÊǶàÉÙ£¿ £¨2£©int Q(int n) £¨1£©int Stery(int n) { { if (n == 1) int S = 0; for (int i = 1; i <= n; i++) return 1; S = S + i * i; else return S; return Q(n-1) + 2 * n - 1; } } £¨1£© Íê³ÉµÄÊÇ1-nµÄƽ·½ºÍ »ù±¾Óï¾ä£ºs+=i*i£¬Ö´ÐÐÁËn´Î ʱ¼ä¸´ÔÓ¶ÈO£¨n£© £¨2£© £¨2£©Íê³ÉµÄÊÇnµÄƽ·½ »ù±¾Óï¾ä£ºreturn Q(n-1) + 2 * n ¨C 1£¬Ö´ÐÐÁËn´Î ʱ¼ä¸´ÔÓ¶ÈO£¨n£© 3. ·ÖÎöÒÔϳÌÐò¶ÎÖлù±¾Óï¾äµÄÖ´ÐдÎÊýÊǶàÉÙ£¬ÒªÇóÁгö¼ÆË㹫ʽ¡£ £¨1£©for (i = 1; i <= n; i++) £¨2£©m = 0; if (2*i <= n) for (i = 1; i <= n; i++) for (j = 2*i; j <= n; j++) for (j = 1; j <= 2*i; j++) m=m+1; y = y + i * j£» £¨1£© »ù±¾Óï¾ä2*i »ù±¾Óï¾äy = y + i * jÖ´ÐÐÁË2/n´Î Ò»¹²Ö´ÐдÎÊý=n/2+n/2=O£¨n£© £¨2£© »ù±¾Óï¾äm+=1Ö´ÐÐÁË(n/2)*n=O(n*n) 4. ʹÓÃÀ©Õ¹µÝ¹é¼¼ÊõÇó½âÏÂÁеÝÍÆ¹ØÏµÊ½£º 1n?1?4n?1 £¨2£©£¨1£©T(n)?? T(n)???2T(n3)?nn?1??3T(n?1)n?1 (1) int T(int n) { if(n==1) return 4; else if(n>1) return 3*T(n-1); } (2) int T(int n) { if(n==1) return 1; else if(n>1) return 2*T(n/3)+n; } 5. ÇóÏÂÁÐÎÊÌâµÄƽ·²Ï½磬²¢Ö¸³öÆäϽçÊÇ·ñ½ôÃÜ¡£ £¨1£©ÇóÊý×éÖеÄ×î´óÔªËØ£» £¨2£©ÅжÏÁÚ½Ó¾ØÕó±íʾµÄÎÞÏòͼÊDz»ÊÇÍêȫͼ£» £¨3£©È·¶¨Êý×éÖеÄÔªËØÊÇ·ñ¶¼ÊÇΩһµÄ£» £¨4£©Éú³ÉÒ»¸ö¾ßÓÐn¸öÔªËØ¼¯ºÏµÄËùÓÐ×Ó¼¯ (1) ¦¸(n) ½ôÃÜ£¿ (2) ¦¸(n*n) (3) ¦¸(logn+n)£¨ÏȽøÐпìÅÅ£¬È»ºó½øÐбȽϲéÕÒ£© (4) ¦¸(2^n) 7£®»³öÔÚÈý¸öÊýa, b, cÖÐÇóÖÐÖµÎÊÌâµÄÅж¨Ê÷¡£ a a b 8£®¹ú¼ÊÏóÆåÊǺܾÃÒÔǰÓÉÒ»¸öÓ¡¶ÈÈËShashi·¢Ã÷µÄ£¬µ±Ëû°Ñ¸Ã·¢Ã÷Ï׸ø¹úÍõʱ£¬¹úÍõºÜ¸ßÐË£¬¾ÍÐíŵ¿ÉÒÔ¸øÕâ¸ö·¢Ã÷ÈËÈκÎËûÏëÒªµÄ½±ÉÍ¡£ShashiÒªÇóÒÔÕâÖÖ·½Ê½¸øËûһЩÁ¸Ê³£ºÆåÅ̵ĵÚ1¸ö·½¸ñÄÚÖ»·Å1Á£ÂóÁ££¬µÚ2¸ñ2Á££¬µÚ3¸ñ4Á££¬µÚ4¸ñ8Á££¬??£¬ÒÔ´ËÀàÍÆ£¬Ö±µ½64¸ö·½¸ñÈ«²¿·ÅÂú¡£Õâ¸ö½±É͵Ä×îÖÕ½á¹û»áÊÇʲôÑùÄØ£¿ #include int main() { long double result=1; double j=1; for(int i=1;i<=64;++i) { j=j*2; result+=j; j++; } cout< return 0; } ϰÌâ3 1£® ¼ÙÉèÔÚÎı¾\ÖвéÕÒģʽ\£¬Ð´³ö·Ö±ð²ÉÓÃBFËã·¨ºÍKMP Ëã·¨µÄ´®Æ¥Åä¹ý //BFËã·¨ #include int BF(char S[], char T[]) { int index = 0; int i = 0, j = 0; while ((S[i] != '\\0') && (T[j] != '\\0')) { if (S[i] == T[j]) { i++; j++; } else { ++index; i = index; j = 0; } } if (T[j] == '\\0') return index + 1; else return 0; } int main() { char s1[19]=\ char s2[7]=\ cout<< BF( s1, s2) < //KMPËã·¨ #include void GetNext(char T[ ], int next[ ]) //ÇóģʽTµÄnextÖµ { int i, j, len; next[0] = -1; for (j = 1; T[j]!='\\0'; j++) //ÒÀ´ÎÇónext[j] { for (len = j - 1; len >= 1; len--) //ÏàµÈ×Ó´®µÄ×î´ó³¤¶ÈΪj-1 { for (i = 0; i < len; i++) //ÒÀ´Î±È½ÏT[0]~T[len-1]ÓëT[j-len]~T[j-1] if (T[i] != T[j-len+i]) break; if (i == len) { next[j] = len; break; } }//for if (len < 1) next[j] = 0; //ÆäËûÇé¿ö£¬ÎÞÏàµÈ×Ó´® }//for } int KMP(char S[ ], char T[ ]) //ÇóTÔÚSÖеÄÐòºÅ { int i = 0, j = 0; int next[80]; //¼Ù¶¨Ä£Ê½×Ϊ80¸ö×Ö·û GetNext(T, next); while (S[i] != '\\0' && T[j] != '\\0') { if (S[i] == T[j]) { i++; j++; } else { j = next[j]; if (j == -1) {i++; j++;} } } if (T[j] == '\\0') return (i - strlen(T) +1); //·µ»Ø±¾ÌËÆ¥ÅäµÄ¿ªÊ¼Î»Öà else return 0; } int main() { char s1[]=\ char s2[]=\ cout< return 0; } 2.·Öʽ»¯¼ò¡£Éè¼ÆËã·¨£¬½«Ò»¸ö¸ø¶¨µÄÕæ·ÖÊý»¯¼òΪ×î¼ò·ÖÊýÐÎʽ¡£ÀýÈ磬½«6/8»¯¼òΪ3/4¡£ #include int main() { int n;//·Ö×Ó int m;//·Öĸ int factor;//×î´ó¹«Òò×Ó int factor1; cout<<\ÊäÈëÒ»¸öÕæ·ÖÊýµÄ·Ö×ÓÓë·Öĸ£º \ cin>>n>>m; int r = m % n;//ÒòΪÊÇÕæ·ÖÊý ËùÒÔ·Öĸһ¶¨´óÓÚ·Ö×Ó factor1=m; factor=n; while (r != 0) { factor1 =factor; factor = r; r = factor1% factor; } cout<<\Êä³ö¸ÃÕæ·ÖÊýµÄ×î¼ò·ÖÊý£º \return 0; } 3. Éè¼ÆËã·¨£¬ÅжÏÒ»¸ö´óÕûÊýÄÜ·ñ±»11Õû³ý¡£¿ÉÒÔͨ¹ýÒÔÏ·½·¨£º½«¸ÃÊýµÄÊ®½øÖƱíʾ ´ÓÓÒ¶Ë¿ªÊ¼£¬Ã¿Á½Î»Ò»×é¹¹³ÉÒ»¸öÕûÊý£¬È»ºó½«ÕâЩÊýÏà¼Ó£¬ÅÐ¶ÏÆäºÍÄÜ·ñ±»11Õû³ý¡£ÀýÈ磬½«562843748·Ö¸î³É5,62,84,37,48£¬È»ºóÅжÏ(5+62+84+37+48)ÄÜ·ñ±»11Õû³ý //½«Ò»¸ö´óÕûÊý¿´³ÉÒ»¸öÊý×é //Êý×éµÄÆæÊýλ¶ÔÓ¦ÊýµÄ10±¶¼ÓÉÏÊý×éżÊý¶ÔÓ¦ÊýµÄ±¾Éí //ÑéÖ¤½á¹ûÄÜ·ñ±»11Õû³ý #include int main() { int a[9]={5,6,2,8,4,3,7,4,8}; int result=0; //resultΪÌâĿҪÇóµÄ¸÷λ֮ºÍ for(int i=0;i!=9;++i) { if(i%2==0) result+=a[i]; //i ΪżÊýλʱ£¬½á¹û¼ÓÉÏÆä¶ÔÓ¦Êý×éÊýµÄ±¾Éí else result+=a[i]*10; //i ÎªÆæÊýλʱ£¬½á¹û¼ÓÉ϶ÔÓ¦Êý×éÊýµÄ10±¶ } if(result==0) cout<<\¸ÃÕûÊýÄܱ»11Õû³ý\ else cout<<\¸ÃÕûÊý²»Äܱ»11Õû³ý\ return 0; } 4. Êý×ÖÓÎÏ·¡£°ÑÊý×Ö 1,2,?,9Õâ9¸öÊý×ÖÌîÈëÒÔϺ¬Óмӡ¢¼õ¡¢³Ë¡¢³ýµÄËÄÔòÔËËãʽÖУ¬Ê¹µÃ¸ÃµÈʽ³ÉÁ¢¡£ÒªÇó9¸öÊý×Ö¾ù³öÏÖÒ»´ÎÇÒ½ö³öÏÖÒ»´Î£¬ÇÒÊý×Ö1²»ÄܳöÏÖÔڳ˺ͳýµÄһλÊýÖУ¨¼´ÅųýÔËËãʽÖÐһλÊýΪ1µÄƽ·²ÇéÐΣ©¡£ ??¡Á?£«???¡Â?£?? = 0 5. Éè¼ÆËã·¨Çó½âan mod m£¬ÆäÖÐa¡¢nºÍm¾ùΪ´óÓÚ1µÄÕûÊý¡££¨Ìáʾ£ºÎªÁ˱ÜÃâan ³¬³öintÐ͵ıíʾ·¶Î§£¬Ó¦¸Ãÿ×öÒ»´Î³Ë·¨Ö®ºó¶Ônȡ죩 #include int square(int x) { return x*x; } //Óõݹé˼Ïë int resultmod(int a, int n) { if(n== 0) return 1; if(n%2 == 0) return square(resultmod(a, n/2));//nΪżÊýµÄʱ£¬È¡nµÄÒ»°ë·ÀÖ¹Òç³ö else return a*resultmod(a, n-1);//nÎªÆæÊýʱ£¬È¡n-1£» } int main() { int a, n, m; cout<<\ÇëÊäÈëa£¬n, m: \ cin>>a>>n>>m; cout< int result = resultmod(a, n); cout<<\µÄ½á¹ûΪ£º\ return 0; } 6. Éè¼ÆËã·¨£¬ÔÚÊý×ér[n]ÖÐɾ³ýËùÓÐÔªËØÖµÎªxµÄÔªËØ£¬ÒªÇóʱ¼ä¸´ÔÓÐÔΪO(n)£¬¿Õ¼ä¸´ÔÓÐÔΪO(1)¡£ 7. Éè¼ÆËã·¨£¬ÔÚÊý×ér[n]ÖÐɾ³ýÖØ¸´µÄÔªËØ£¬ÒªÇóÒÆ¶¯ÔªËصĴÎÊý½ÏÉÙ²¢Ê¹Ê£ÓàÔªËØ¼äµÄÏà¶Ô´ÎÐò±£³Ö²»±ä¡£ #include void deletere(int a[],int N) { int b[100]={0}; int i,k; k=0; static int j=0; for(i=0;i int main() { int a[]={1,2,1,3,2,4}; deletere(a,6); return 0; } //ÔÚÊý×é²éÕÒÏàͬµÄÔªËØ //°ÑÆäÖÐÒ»¸öÏàͬµÄÊýÖµµÄÔªËØÎ»ÖÃÉè³ÉÒ»¸ö¡°ÌØÊâÊýÖµ¡± //Êä³öËùÇóº¯Êý #include using namespace std; int main() { int a[]={1,2,1,5,3,2,9,4,5,5,3,5}; int i,j; for( i=0;i<12;i++) { for(j=0;j a[i]=64787250;//ÉèÒ»¸öÊý×é²»´æÔÚµÄÊýÖµ } }//for for(i=0;i<12;i++) { if(a[i]!=64787250) cout< 8. Éè±íA={a1, a2, ?, an}£¬½«A²ð³ÉBºÍCÁ½¸ö±í£¬Ê¹AÖÐÖµ´óÓÚµÈÓÚ0µÄÔªËØ´æÈë±íB£¬ÖµÐ¡ÓÚ0µÄÔªËØ´æÈë±íC£¬ÒªÇó±íBºÍC²»ÁíÍâÉèÖô洢¿Õ¼ä¶øÀûÓñíAµÄ¿Õ¼ä¡£ //ÏȶÔA½øÐпìÅÅ //½«´óÓÚ0µÄÔªËØ¸øB£¬Ð¡ÓÚ0µÄÔªËØ¸øC #include int partions(int l[],int low,int high) { int prvotkey=l[low]; l[0]=l[low]; while (low while (low l[low]=l[high]; while (low l[high]=l[low]; } l[low]=l[0]; return low; } void qsort(int l[],int low,int high) { int prvotloc; if(low prvotloc=partions(l,low,high); //½«µÚÒ»´ÎÅÅÐòµÄ½á¹û×÷ΪÊàÖá qsort(l,low,prvotloc-1); //µÝ¹éµ÷ÓÃÅÅÐò ÓÉlow µ½prvotloc-1 qsort(l,prvotloc+1,high); //µÝ¹éµ÷ÓÃÅÅÐò ÓÉ prvotloc+1µ½ high } } void quicksort(int l[],int n) { qsort(l,1,n); //µÚÒ»¸ö×÷ΪÊàÖá £¬´ÓµÚÒ»¸öÅŵ½µÚn¸ö } int main() { int a[11]={-2,2,32,43,-23,45,36,-57,14,27,-39}; quicksort(a,11); for(int i=1;i<11;i++) { if(a[i]<0) cout<<\ else cout<<\ } cout< return 0; } 9. ºÉÀ¼¹úÆìÎÊÌâ¡£ÒªÇóÖØÐÂÅÅÁÐÒ»¸öÓÉ×Ö·ûR, W, B£¨R´ú±íºìÉ«£¬W´ú±í°×É«£¬B´ú±íÀ¼É«£¬Õâ¶¼ÊǺÉÀ¼¹úÆìµÄÑÕÉ«£©¹¹³ÉµÄÊý×飬ʹµÃËùÓеÄR¶¼ÅÅÔÚ×îÇ°Ãæ£¬WÅÅÔÚÆä´Î£¬BÅÅÔÚ×îºó¡£ÎªºÉÀ¼¹úÆìÎÊÌâÉè¼ÆÒ»¸öËã·¨£¬Æäʱ¼äÐÔÄÜÊÇO(n)¡£ //0´ú±íºì£»1´ú±í°×£»2´ú±íÀ¶ #include const int N = 20; void swap_ab ( int *p , int *q ) { int tmp = *p; *p = *q; *q = tmp; } void process ( int a[], int n ) { int *p, *q; p = q = a; while ( p != a+n-1 ) //pÏòǰ±éÀú£¬Ö±µ½±ãÀûÍê±Ï { if ( *(p+1) < *p ) { q = p+1; while ( *q < *(q-1) ) { swap_ab ( q, q-1 ); --q; //qÖ¸ÕëºóÒÆ } } //if ++p; } //while } int main() { int a[N] = { 0, 2, 1, 2, 0, 1, 0, 2, 2, 1, 0, 1, 2, 1, 1, 0, 0, 1, 1, 2}; //´ý´¦ÀíµÄÊý×é cout << \´¦ÀíºóµÄÊý×éÐòÁÐ: \ process ( a, N ); for (int i=0; i< N; ++i ) cout << a[i] <<\ cout << endl; return 0; } 10. Éè×î½ü¶ÔÎÊÌâÒÔkά¿Õ¼äµÄÐÎʽ³öÏÖ£¬kά¿Õ¼äµÄÁ½¸öµãp1=(x1, x2, ?, xk)ºÍp2=(y1, y2, ?, yk)µÄÅ·¼¸ÀïµÂ¾àÀ붨ÒåΪ£ºd(p1,p2)??(y-x)iii?1k2¡£¶Ôkά¿Õ¼äµÄ×î½ü¶ÔÎÊÌâÉè¼Æ ÂùÁ¦Ëã·¨£¬²¢·ÖÎöÆäʱ¼äÐÔÄÜ¡£ 11£®Éè¼ÆÂùÁ¦Ëã·¨Çó½âС¹æÄ£µÄÏßÐԹ滮ÎÊÌâ¡£¼ÙÉèÔ¼ÊøÌõ¼þΪ£º£¨1£©x+y¡Ü4£»£¨2£©x+3y¡Ü6£»£¨3£©x¡Ý0ÇÒy¡Ý0£»Ê¹Ä¿±êº¯Êý3x+5yÈ¡µÃ¼«´óÖµ¡£ #include int main() { int x,y,x0,y0; int summax=0,temp=0; for(x0=0;x0<=4;++x0) { for(y0=0;(x0+y0<=4)&&(x0+3*y0<=6);++y0) temp=3*x0+5*y0; if(temp>=summax) { summax=temp; x=x0;//·ûºÏsum×î´óÖµµÄx y=y0;//·ûºÏsum×î´óÖµµÃy } }//for cout<<\ return 0; } 12£®Éè¼ÆËã·¨£¬Åж¨Ò»¸öÒÔÁÚ½Ó¾ØÕó±íʾµÄÁ¬Í¨Í¼ÊÇ·ñ¾ßÓÐÅ·À»ØÂ·¡£ Ëã·¨ÃèÊö£º ÊäÈ룺ÁÚ½Ó¾ØÕó(n*n) Êä³ö£ºÈçÓÐÖ¤Ã÷ÓÐÅ·À»ØÂ·£¬ÔòÊä³ö¸Ã»ØÂ·£¬·ñÔò£¬Êä³öÎÞ½âÐÅÏ¢ 1 ¶Ô¾ØÕóµÄ¶Ô½ÇÏßÊÇ·ñÓÐ>0µÄÔªËØ½øÐÐÅÐ¶Ï 1.1 Ñ»·±äÁ¿i´Ó1¡ªnÖØ¸´½øÐÐÏÂÊö²Ù×÷£º 1.1.1¼ÆËã¾ØÕói´Î·½£¬Èç¹û¾ØÕó¶Ô½ÇÏßÉÏÓÐ>0µÄÔªËØ£¬ÔòÌø×ªµ½1.2 1.1.2·ñÔò++i; 1.2 Èç¹û¾ØÕó¶Ô½ÇÏßÓÐ>0µÄÔªËØ£¬ÔòÊä³ö¸Ã»ØÂ· 2 Êä³öÎÞ½âÐÅÏ¢£» 13£®ÕÒ´ÊÓÎÏ·¡£ÒªÇóÓÎÏ·Õß´ÓÒ»ÕÅÌîÂú×Ö·ûµÄÕý·½ÐαíÖУ¬ÕÒ³ö°üº¬ÔÚÒ»¸ö¸ø¶¨¼¯ºÏÖеÄËùÓе¥´Ê¡£ÕâЩ´ÊÔÚÕý·½ÐαíÖпÉÒÔºá×ŶÁ¡¢Êú×ŶÁ¡¢»òÕßб×ŶÁ¡£ÎªÕâ¸öÓÎÏ·Éè¼ÆÒ»¸öÂùÁ¦Ëã·¨ 14. ±äλ´Ê¡£¸ø¶¨Á½¸öµ¥´Ê£¬ÅжÏÕâÁ½¸öµ¥´ÊÊÇ·ñÊDZäλ´Ê¡£Èç¹ûÁ½¸öµ¥´ÊµÄ×ÖĸÍêÈ«Ïàͬ£¬Ö»ÊÇλÖÃÓÐËù²»Í¬£¬ÔòÕâÁ½¸öµ¥´Ê³ÆÎª±äλ´Ê¡£ÀýÈ磬eatºÍteaÊDZäλ´Ê¡£ //ÅжÏqwerºÍrewqÊÇ·ñÊDZäλ´Ê #include int main() { char s[5]=\ char t[5]=\ for(int i=0;i!=4;++i) { if(s[i]!=t[3-i]) { cout<<\ºÍrewq²»ÊDZäλ´Ê\ return 0; break; } } cout<<\ºÍrewqÊDZäλ´Ê\ return 0; } 15£®ÔÚÃÀ¹úÓÐÒ»¸öÁ¬Ëøµê½Ð7-11µê£¬ÒòΪÕâ¸öÉ̵êÒÔǰÊÇÔ糿7µã¿ªÃÅ£¬ÍíÉÏ11µã¹ØÃÅ¡£ÓÐÒ»Ì죬һ¸ö¹Ë¿ÍÔÚÕâ¸öµêÌôÑ¡ÁËËÄÑù¶«Î÷£¬È»ºóµ½¸¶¿î´¦È¥½»Ç®¡£ÓªÒµÔ±ÄÃÆð¼ÆËãÆ÷£¬°´ÁËһЩ¼ü£¬È»ºó˵£º¡°×ܹ²ÊÇ$7.11¡£¡±Õâ¸ö¹Ë¿Í¿ªÁ˸öÍæÐ¦Ëµ£º¡°Å¶£¿ÄѵÀÒòΪÄãÃǵĵêÃû½Ð7-11£¬ËùÒÔÎÒ¾ÍÒª¸¶$7.11Â𣿡±ÓªÒµÔ±Ã»ÓÐÌý³öÕâÊǸöÍæÐ¦£¬»Ø´ð˵£º¡°µ±È»²»ÊÇ£¬ÎÒÒѾ°ÑÕâËÄÑù¶«Î÷µÄ¼Û¸ñÏà³Ë²ÅµÃ³öÕâ¸ö½á¹ûµÄ£¡¡±¹Ë¿ÍÒ»Ìý·Ç³£³Ô¾ª£¬¡°ÄãÔõô°ÑËûÃÇÏà³ËÄØ£¿ÄãÓ¦¸Ã°ÑËûÃÇÏà¼Ó²Å¶Ô£¡¡±ÓªÒµÔ±´ðµÀ£º¡°àÞ£¬¶Ô²»Æð£¬ÎÒ½ñÌì·Ç³£Í·ÌÛ£¬ËùÒ԰Ѽü°´´íÁË¡£¡±È»ºó£¬ÓªÒµÔ±½«½á¹ûÖØËãÁËÒ»±é£¬½«ÕâËÄÑù¶«Î÷µÄ¼Û¸ñ¼ÓÔÚÒ»Æð£¬È»¶ø£¬ÁîËûÁ©¸üΪ³Ô¾ªµÄÊÇ×ܺÍÒ²ÊÇ$7.11¡£Éè¼ÆÂùÁ¦Ëã·¨ÕÒ³öÕâËÄÑù¶«Î÷µÄ¼Û¸ñ¸÷ÊǶàÉÙ£¿ ¸ÃË㷨Ϊ£º int $7.11(float a[],float b[],float c[],float d[],int n) { for(int i=0;i!=n;++i) for(int j=0;j!=n;++j) for(int k=0;k!=n;++k) for(int m=0;m!=n;++m) { if((a[i]+b[j]+c[k]+d[m])==7.11 && a [i]*b[j]*c[k]*d[m]==7.11) cout< ϰÌâ4 1. ·ÖÖ稵Äʱ¼äÐÔÄÜÓëÖ±½Ó¼ÆËã×îСÎÊÌâµÄʱ¼ä¡¢ºÏ²¢×ÓÎÊÌâ½âµÄʱ¼äÒÔ¼°×ÓÎÊÌâµÄ¸öÊýÓйأ¬ÊÔ˵Ã÷Õ⼸¸ö²ÎÊýÓë·ÖÖη¨Ê±¼ä¸´ÔÓÐÔÖ®¼äµÄ¹ØÏµ¡£ 2. Ö¤Ã÷£ºÈç¹û·ÖÖη¨µÄºÏ²¢¿ÉÒÔÔÚÏßÐÔʱ¼äÄÚÍê³É£¬Ôòµ±×ÓÎÊÌâµÄ¹æÄ£Ö®ºÍСÓÚÔÎÊÌâµÄ¹æÄ£Ê±£¬Ëã·¨µÄʱ¼ä¸´ÔÓÐÔ¿É´ïµ½O(n)¡£ O(N)=2*O(N/2)+x O(N)+x=2*O(N/2)+2*x a*O(N)+x=a*(2*O(N/2)+x)+x=2*a *O(N/2)+(a+1)*x ÓÉ´Ë¿ÉÖª£¬Ê±¼ä¸´ÔӶȿɴﵽO(n); 3.·ÖÖβßÂÔÒ»¶¨µ¼ÖµݹéÂð£¿Èç¹ûÊÇ£¬Çë½âÊÍÔÒò¡£Èç¹û²»ÊÇ£¬¸ø³öÒ»¸ö²»°üº¬µÝ¹éµÄ·ÖÖÎÀý×Ó£¬²¢²ûÊöÕâÖÖ·ÖÖκͰüº¬µÝ¹éµÄ·ÖÖεÄÖ÷Òª²»Í¬¡£ ²»Ò»¶¨µ¼Öµݹ顣 Èç·ÇµÝ¹éµÄ¶þ²æÊ÷ÖÐÐò±éÀú¡£ ÕâÖÖ·ÖÖη½·¨ÓëµÝ¹éµÄ¶þ²æÊ÷ÖÐÐò±éÀúÖ÷񻂿±ðÊÇ£ºÓ¦ÓÃÁËÕ»Õâ¸öÊý¾Ý½á¹¹¡£ 4. ¶ÔÓÚ´ýÅÅÐòÐòÁÐ(5, 3, 1, 9)£¬·Ö±ð»³ö¹é²¢ÅÅÐòºÍ¿ìËÙÅÅÐòµÄµÝ¹éÔËÐй켣¡£ ¹é²¢ÅÅÐò£º µÚÒ»ÌË£º£¨5,3£©£¨1,9£©£» µÚ¶þÌË£º£¨3,5,1,9£©£» µÚÈýÌË£º£¨1,3,5,9£©£» ¿ìËÙÅÅÐò£º µÚÒ»ÌË£º5£¨ ,3,1,9£©£»//5ΪÉÚ±ø£¬±È½Ï9ºÍ5 µÚ¶þÌË£º5£¨1,3, ,9£©£»//±È½Ï1ºÍ5£¬½«1Ųµ½ÏàӦλÖã» µÚÈýÌË£º5£¨1,3, ,9£©;//±È½Ï3ºÍ5£» µÚËÄÌË£º£¨1,3,5,9£©; 5. Éè¼Æ·ÖÖÎËã·¨ÇóÒ»¸öÊý×éÖеÄ×î´óÔªËØ£¬²¢·ÖÎöʱ¼äÐÔÄÜ¡£ //¼òµ¥µÄ·ÖÖÎÎÊÌâ //½«Êý×é¾ùºâµÄ·ÖΪ¡°Ç°¡±£¬¡°ºó¡±Á½²¿·Ö //·Ö±ðÇó³öÕâÁ½²¿·Ö×î´óÖµ£¬È»ºóÔٱȽÏÕâÁ½¸ö×î´óÖµ #include extern const int n=6;//ÉùÃ÷ int main() { int a[n]={0,6,1,2,3,5};//³õʼ»¯ int mid=n; int num_max1=0,num_max2=0; for(int i=0;i<=n;++i)//ǰ°ë²¿·Ö { if(a[i]>num_max1) num_max1=a[i]; } for(int j=n+1;j cout<<\Êý×éÖеÄ×î´óÔªËØ£º \ return 0; } ʱ¼ä¸´ÔÓ¶È£ºO£¨n£© 6. Éè¼Æ·ÖÖÎËã·¨£¬ÊµÏÖ½«Êý×éA[n]ÖÐËùÓÐÔªËØÑ»·×óÒÆk¸öλÖÃ, ÒªÇóʱ¼ä¸´ÔÓÐÔΪO(n)£¬¿Õ¼ä¸´ÔÓÐÔΪO(1)¡£ÀýÈ磬¶ÔabcdefghÑ»·×óÒÆ3λµÃµ½defghabc¡£ //²ÉÓ÷ÖÖη¨ //½«Êý×é·ÖΪ0-k-1ºÍk-n-1Á½¿é //½«ÕâÁ½¿é·Ö±ð×óÒÆ //È»ºóÔٺϲ¢×óÒÆ #include void LeftReverse(char *a, int begin, int end) { for(int i=0;i<(end-begin+1)/2;i++)//½»»»Òƶ¯ { int temp=a[begin+i]; a[begin+i]=a[end-i]; a[end-i]=temp; } } void Converse(char *a,int n,int k) { LeftReverse(a, 0, k+1); LeftReverse(a, k, n+1); LeftReverse(a, 0, n-1); for(int i=0;i int main() { char a[7]={'a','b','c','d','e','f','g'}; Converse(a,7,3); return 0; } 7. Éè¼ÆµÝ¹éËã·¨Éú³Én¸öÔªËØµÄËùÓÐÅÅÁжÔÏó¡£ #include int data[100]; //ÔÚm¸öÊýÖÐÊä³ön¸öÅÅÁÐÊý£¨n<=m£© void DPpl(int num,int m,int n,int depth) { if(depth==n) { for(int i=0;i for(int j=0;j if((num&(1< DPpl(num+(1< int main() { DPpl(0,5,1,0); DPpl(0,5,2,0); DPpl(0,5,3,0); DPpl(0,5,4,0); DPpl(0,5,5,0); return 0; } 8. Éè¼Æ·ÖÖÎËã·¨Çó½âһά¿Õ¼äÉÏn¸öµãµÄ×î½ü¶ÔÎÊÌâ¡£ ²Î¼û4.4.1×î½ü¶ÔÎÊÌâµÄËã·¨·ÖÎö¼°Ë㷨ʵÏÖ 9. ÔÚÓÐÐòÐòÁÐ(r1, r2, ?, rn)ÖУ¬´æÔÚÐòºÅi£¨1¡Üi¡Ün£©£¬Ê¹µÃri=i¡£ÇëÉè¼ÆÒ»¸ö·ÖÖÎËã·¨ÕÒµ½Õâ¸öÔªËØ£¬ÒªÇóËã·¨ÔÚ×Çé¿öϵÄʱ¼äÐÔÄÜΪO(log2n)¡£ //ÔÚÓÐÐòÊý×éÖÐ //²ÉÓöþ·Ö·¨²éÕÒ·ûºÏÌõ¼þµÄÔªËØ #include void Findnum(int *a,int n) { int low=0; int high=n-1; while(low<=high) { int mid=(low+high)/2; if(a[mid]==mid) { cout<<\Õâ¸öÊýÊÇ£º \ break; } else if(a[mid]>mid) high=mid-1; else low=mid+1; } } int main() { int a[7]={1,0,2,5,6,7,9}; Findnum(a,7); return 0; } ʱ¼ä¸´ÔÓ¶ÈΪO(log2n)¡£ 10. ÔÚÒ»¸öÐòÁÐÖгöÏÖ´ÎÊý×î¶àµÄÔªËØ³ÆÎªÖÚÊý¡£ÇëÉè¼ÆË㷨ѰÕÒÖÚÊý²¢·ÖÎöËã·¨µÄʱ¼ä¸´ÔÓÐÔ¡£ //ÏȶÔÐòÁнøÐпìËÙÅÅÐò //ÔÙ½øÐÐÒ»´Î±éÀú //Êä³öÖÚÊýµÄÖØ¸´´ÎÊý #include int partions(int b[],int low,int high) { int prvotkey=b[low]; b[0]=b[low]; while (low while (low b[low]=b[high]; while (low b[high]=b[low]; } b[low]=b[0]; return low; } void qsort(int l[],int low,int high) { int prvotloc; if(low { prvotloc=partions(l,low,high); //½«µÚÒ»´ÎÅÅÐòµÄ½á¹û×÷ΪÊàÖá qsort(l,low,prvotloc-1); //µÝ¹éµ÷ÓÃÅÅÐò ÓÉlow µ½prvotloc-1 qsort(l,prvotloc+1,high); //µÝ¹éµ÷ÓÃÅÅÐò ÓÉ prvotloc+1µ½ high } } void quicksort(int l[],int n) { qsort(l,1,n); //µÚÒ»¸ö×÷ΪÊàÖá £¬´ÓµÚÒ»¸öÅŵ½µÚn¸ö } int main() { int a[10]={1,2,3,5,3,3,3,2,5,1}; int i=0; int count=0; int max=0;//max±íʾ³öÏֵĴÎÊý qsort(a,0,10); while(i<10) { int j; j=i+1; if(a[i]=a[j]&&i<10) { count++; i++; } if(count>max) { max=count; count=0; } }//while cout<<\ÖØ¸´´ÎÊý£º\ return 0; } ʱ¼ä¸´ÔÓ¶Ènlog(n) 11. ÉèMÊÇÒ»¸ön¡ÁnµÄÕûÊý¾ØÕ󣬯äÖÐÿһÐУ¨´Ó×óµ½ÓÒ£©ºÍÿһÁУ¨´ÓÉϵ½Ï£©µÄÔªËØ¶¼°´ÉýÐòÅÅÁС£Éè¼Æ·ÖÖÎË㷨ȷ¶¨Ò»¸ö¸ø¶¨µÄÕûÊýxÊÇ·ñÔÚMÖУ¬²¢·ÖÎöËã·¨µÄʱ¼ä¸´ÔÓÐÔ¡£ 12. ÉèSÊÇn£¨nΪżÊý£©¸ö²»µÈµÄÕýÕûÊýµÄ¼¯ºÏ£¬ÒªÇ󽫼¯ºÏS»®·ÖΪ×Ó¼¯S1ºÍS2£¬Ê¹µÃ| S1|=| S2|=n/2£¬ÇÒÁ½¸ö×Ó¼¯ÔªËØÖ®ºÍµÄ²î´ïµ½×î´ó¡£ //ÏÈÓÿìËÙÅÅÐò½øÐÐÒ»ÌËÅÅÐò //Èç¹ûs1£¨´óµÄÊý¼¯£©µÄµÄ¸öÊý´óÓÚn/2 //½«£¨i<=n/2-low-1£©¸ö×îСµÄÊýÅŵ½ºóÃæ //Èç¹ûs1£¨´óµÄÊý¼¯£©µÄµÄ¸öÊýСÓÚn/2 //½«s2£¨Ð¡µÄÊý¼¯£©n/2-low-1Åŵ½Ç°Ãæ //½«ÅźõÄÊý×éµÄǰn/2¸öÊý¸³Öµ¸øs1 //½«ÅźõÄÊý×éµÄºón/2¸öÊý¸³Öµ¸øs2 #include void partions(int a[],int low,int high) { //½øÐÐÒ»ÌË¿ìÅÅ int prvotkey=a[low]; a[0]=a[low]; while (low while (low a[low]=a[high]; while (low a[high]=a[low]; } a[low]=prvotkey; //Èç¹ûs1£¨´óµÄÊý¼¯£©µÄµÄ¸öÊý´óÓÚn/2 if(low>=n/2) { for(int i=0;i<=n/2-low-1;++i) { for(int j=0;j { if(a[j] //Èç¹ûs1£¨´óµÄÊý¼¯£©µÄµÄ¸öÊýСÓÚn/2 else for(int i=0;i<=n/2-low-1;++i) { for(int k=n-1;k int main() { int a[n]={1,3,5,9,6,0,-11,-8}; partions(a,0,n-1); for(int i=0;i if(i<4) { cout<<\ÊôÓÚ×Ó¼¯s1µÄ£º\ cout< cout<<\ÊôÓÚ×Ó¼¯s2µÄ£º\ cout< } } return 0; } 13. Éèa1, a2,?, anÊǼ¯ºÏ{1, 2, ?, n}µÄÒ»¸öÅÅÁУ¬Èç¹ûi //Óù鲢½øÐÐÅÅÐò //µ±Ò»¸ö×Ó¼¯µÄÒ»¸öÊý´óÓÚµÚ¶þ¸ö×Ó¼¯µÄÒ»¸öÊý£¬ÎªÄæÐò£¬¼´a[i]>a[j] //ÔòÄæÐòÊýΪend-j+1; #include int count; void Merge(int a[],int a1[],int begin,int mid,int end)//ºÏ²¢×ÓÐòÁÐ { int i=begin,j=mid+1,k=end; while(i<=mid&&j<=end) { if(a[i]<=a[j]) a1[k++]=a[i++];//È¡a[i]ºÍa[j]ÖнÏСÕß·ÅÈër1[k] else { a1[k++]=a[j++]; count+=(end-j+1); } } while(i<=mid) a1[k++]=a[i++]; while(j<=end) a1[k++]=a[j++]; } void MergeSort(int a[ ], int begin, int end) { int mid,a1[1000]; if(begin==end) return ; else { mid=(begin+end)/2; MergeSort(a,begin,mid); MergeSort(a,mid+1,end); Merge(a,a1,begin,mid,end); } } int main() { int a[6]={6,5,4,3,2,1}; count=0; MergeSort(a,0,6); cout< 14. Ñ»·ÈüÈճ̰²ÅÅÎÊÌâ¡£ÉèÓÐn=2k¸öÑ¡ÊÖÒª½øÐÐÍøÇòÑ»·Èü£¬ÒªÇóÉè¼ÆÒ»¸öÂú×ãÒÔÏÂÒªÇóµÄ±ÈÈüÈÕ³Ì±í£º £¨1£©Ã¿¸öÑ¡ÊÖ±ØÐëÓëÆäËûn-1¸öÑ¡ÊÖ¸÷ÈüÒ»´Î£» £¨2£©Ã¿¸öÑ¡ÊÖÒ»ÌìÖ»ÄÜÈüÒ»´Î¡£ ²ÉÓ÷ÖÖη½·¨¡£ ½«2^kÑ¡ÊÖ·ÖΪ2^k-1Á½×飬²ÉÓõݹ鷽·¨£¬¼ÌÐø½øÐзÖ×飬ֱµ½Ö»Ê£ÏÂ2¸öÑ¡ÊÖʱ£¬È»ºó½øÐбÈÈü£¬»ØËݾͿÉÒÔÖ¸¶¨±ÈÈüÈճ̱íÁË 15. ¸ñÀ×ÂëÊÇÒ»¸ö³¤¶ÈΪ2nµÄÐòÁУ¬ÐòÁÐÖÐÎÞÏàÍ¬ÔªËØ£¬ÇÒÿ¸öÔªËØ¶¼Êdz¤¶ÈΪnµÄ¶þ½øÖÆÎ»´®£¬ÏàÁÚÔªËØÇ¡ºÃÖ»ÓÐ1λ²»Í¬¡£ÀýÈ糤¶ÈΪ23µÄ¸ñÀ×ÂëΪ(000, 001, 011, 010, 110, 111, 101, 100)¡£Éè¼Æ·ÖÖÎËã·¨¶ÔÈÎÒâµÄnÖµ¹¹ÔìÏàÓ¦µÄ¸ñÀ×Âë¡£ //¹¹Ôì¸ñÀ×Âë #include int n; char a[100]; void gelei(int k) { if(k==n) { cout< } gelei(k+1); a[k]='0'?'1':'0'; //È¡·´ gelei(k+1); } int main() { while(cin>>n && n != 0) { memset(a,'0',sizeof(a)); //³õʼ»¯£¬È«²¿ÖÃÁã a[n] ='\\0'; gelei(0); cout< return 0; } 16. ¾ØÕó³Ë·¨¡£Á½¸ön¡ÁnµÄ¾ØÕóXºÍYµÄ³Ë»ýµÃµ½ÁíÍâÒ»¸ön¡ÁnµÄ¾ØÕóZ£¬ÇÒZij Âú×ã £¨1¡Üi, j¡Ün£©£¬Õâ¸ö¹«Ê½¸ø³öÁËÔËÐÐʱ¼äΪO(n3)µÄËã·¨¡£¿ÉÒÔÓÃ·Ö Ö稽â¾ö¾ØÕó³Ë·¨ÎÊÌ⣬½«¾ØÕóXºÍY¶¼»®·Ö³ÉËĸön/2¡Án/2µÄ×ӿ飬´Ó¶øXºÍYµÄ³Ë»ý¿ÉÒÔÓÃÕâЩ×Ó¿é½øÐбí´ï£¬¼´ ´Ó¶øµÃµ½·ÖÖÎËã·¨£ºÏÈµÝ¹éµØ¼ÆËã8¸ö¹æÄ£Îªn/2µÄ¾ØÕó³Ë»ýAE¡¢BG¡¢AF¡¢BH¡¢CE¡¢DG¡¢CF¡¢DH£¬È»ºóÔÙ»¨·ÑO(n2)µÄʱ¼äÍê³É¼Ó·¨ÔËËã¼´¿É¡£ÇëÉè¼Æ·ÖÖÎË㷨ʵÏÖ¾ØÕó³Ë·¨£¬²¢·ÖÎöʱ¼äÐÔÄÜ¡£ÄÜ·ñÔٸĽøÕâ¸ö·ÖÖÎËã·¨£¿ ϰÌâ5 1. ÏÂÃæÕâ¸öÕÛ°ë²éÕÒËã·¨ÕýÈ·Âð£¿Èç¹ûÕýÈ·£¬Çë¸ø³öËã·¨µÄÕýÈ·ÐÔÖ¤Ã÷£¬Èç¹û²»ÕýÈ·£¬Çë ˵Ã÷²úÉú´íÎóµÄÔÒò¡£ int BinSearch(int r[ ], int n, int k) { int low = 0, high = n - 1; int mid; while (low <= high) { mid = (low + high) / 2; if (k < r[mid]) high = mid; else if (k > r[mid]) low = mid; else return mid; } return 0; } ´íÎó¡£ ÕýÈ·Ëã·¨£º int BinSearch1(int r[ ], int n, int k) { int low = 0, high = n - 1; int mid; while (low <= high) { mid = (low + high) / 2; if (k < r[mid]) high = mid - 1; else if (k > r[mid]) low = mid + 1; else return mid; } return 0; } 2. Çëд³öÕÛ°ë²éÕҵĵݹéËã·¨£¬²¢·ÖÎöʱ¼äÐÔÄÜ¡£ //ÕÛ°ë²éÕҵĵݹéʵÏÖ #include int digui_search(int a[],int low,int high,int x) { if (low > high) return 0; int mid = (low+high)/2; if (a[mid] == x) return mid; else if (a[mid] < x) digui_search(a,low,mid-1,x); else digui_search(a,mid+1,high,x); } int main() { int a[6]={0,1,2,9,5,3}; int result=digui_search(a,0,5,5); cout< 3. ÐÞ¸ÄÕÛ°ë²éÕÒË㷨ʹ֮Äܹ»½øÐз¶Î§²éÕÒ¡£Ëùν·¶Î§²éÕÒÊÇÒªÕÒ³öÔÚ¸ø¶¨ÖµaºÍbÖ®¼ä µÄËùÓÐÔªËØ£¨a¡Üb£© Ð޸ĵڶþÌâËã·¨²¢ÊµÏÖ£º //ÕÛ°ë²éÕÒË㷨ʹ֮Äܹ»½øÐз¶Î§²éÕÒ #include //ÕÛ°ë½øÐз¶Î§²éÕÒº¯Êý£º void digui_search(int min, int max, int a[], int low, int high) { int mid; mid=(low+high)/2; if(a[mid] digui_search(min, max, a, mid, high); else if(a[mid]>max) digui_search(min, max, a, low, mid); else {