锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精久久久久久久,亚洲专区在线视频,国产成人亚洲精品蜜芽影院http://www.tkk7.com/jlin/category/51569.htmlzh-cnThu, 27 Mar 2014 21:03:10 GMTThu, 27 Mar 2014 21:03:10 GMT60鎵懼嚭鏁扮粍涓敮涓閲嶅鐨勬暟http://www.tkk7.com/jlin/archive/2014/03/27/411576.htmlflyflyThu, 27 Mar 2014 11:40:00 GMThttp://www.tkk7.com/jlin/archive/2014/03/27/411576.htmlhttp://www.tkk7.com/jlin/comments/411576.htmlhttp://www.tkk7.com/jlin/archive/2014/03/27/411576.html#Feedback0http://www.tkk7.com/jlin/comments/commentRss/411576.htmlhttp://www.tkk7.com/jlin/services/trackbacks/411576.html棰樼洰錛?/p>

鏁扮粍a[N]錛?鑷砃-1榪橬-1涓暟瀛樻斁鍦╝[N]涓紝鍏朵腑鏌愪釜鏁伴噸澶嶄竴嬈°傚啓涓涓嚱鏁幫紝鎵懼嚭琚噸澶嶇殑鏁板瓧銆?/p>

鏂規硶涓錛氬紓鎴栨硶銆?/p>

鏁扮粍a[N]涓殑N涓暟寮傛垨緇撴灉涓?鑷砃-1寮傛垨鐨勭粨鏋滃啀鍋氬紓鎴栵紝寰楀埌鐨勫煎嵆涓烘墍姹傘?/p>

  • 璁鵑噸澶嶆暟涓篈錛屽叾浣橬-2涓暟寮傛垨緇撴灉涓築銆?/span> 
  • N涓暟寮傛垨緇撴灉涓篈^A^B 
  • 1鑷砃-1寮傛垨緇撴灉涓篈^B 
  • 鐢變簬寮傛垨婊¤凍浜ゆ崲寰嬪拰緇撳悎寰嬶紝涓擷^X = 0  0^X = X; 
  • 鍒欐湁 
  • (A^B)^(A^A^B)=A^B^B=A 

浠g爜錛?/p>

 

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <math.h>  
  4. #include<time.h>  
  5. void xor_findDup(int * a,int N)    
  6. {    
  7.     int i;    
  8.     int result=0;    
  9.     for(i=0;i<N;i++)    
  10.     {    
  11.         result ^= a[i];    
  12.     }    
  13.       
  14.     for (i=1;i<N;i++)     
  15.     {    
  16.         result ^= i;    
  17.     }    
  18.       
  19.     printf("%d\n",result);    
  20.       
  21. }    
  22.  
  23.  
  24.  
  25. int main(int argc, char* argv[])    
  26. {    
  27.     int a[] = {1,2,1,3,4};    
  28.     xor_findDup(a,5);    
  29.     return 0;    
  30. }   

 鏂規硶浜岋細鏁板娉曘?/p>

瀵規暟緇勭殑鎵鏈夐」姹傚拰錛屽噺鍘?鑷砃-1鐨勫拰錛屽嵆涓烘墍姹傛暟銆?/p>

 

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <math.h>  
  4. #include<time.h>  
  5. void xor_findDup(int * a,int N)    
  6. {    
  7.     int tmp1 = 0;  
  8.       
  9.     int tmp2 = 0;  
  10.       
  11.     for (int i=0; i<N-1; ++i)  
  12.           
  13.     {  
  14.           
  15.         tmp1+=(i+1);  
  16.           
  17.         tmp2+=a[i];  
  18.           
  19.     }  
  20.     tmp2+=a[N-1];  
  21.     int result=tmp2-tmp1;     
  22.     printf("%d\n",result);    
  23.       
  24. }    
  25.  
  26.  
  27.  
  28. int main(int argc, char* argv[])    
  29. {    
  30.     int a[] = {1,2,4,3,4};    
  31.     xor_findDup(a,5);    
  32.     return 0;    
  33. }   

瀵逛簬姹傚拰錛屽彲浠ョ洿鎺ユ牴鎹叕寮忓畾涔変竴涓畯銆?define sum(x)  (x*(x+1)/2)
 

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <math.h>  
  4. #include<time.h>  
  5. #define sum(x)  (x*(x+1)/2)   
  6. void xor_findDup(int * a,int N)    
  7. {    
  8.     int tmp1 = sum((N-1));//娉ㄦ剰N-1瑕佸姞鎷彿     
  9.     int tmp2 = 0;  
  10.       
  11.     for (int i=0; i<N; ++i)       
  12.     {             
  13.         tmp2+=a[i];   
  14.     }  
  15.     int result=tmp2-tmp1;     
  16.     printf("%d\n",result);        
  17. }    
  18.  
  19. int main(int argc, char* argv[])    
  20. {    
  21.     int a[] = {1,2,4,2,3};    
  22.     xor_findDup(a,5);    
  23.     return 0;    
  24. }   

 鏂規硶涓夛細鏍囧織鏁扮粍娉?/p>

鐢寵涓涓暱搴︿負n-1涓斿潎涓?0'緇勬垚鐨勫瓧絎︿覆銆傜劧鍚庝粠澶撮亶鍘哸[n]鏁扮粍錛屽彇姣忎釜鏁扮粍鍏冪礌a[i]鐨勫鹼紝灝嗗叾瀵瑰簲鐨勫瓧絎︿覆涓殑鐩稿簲浣嶇疆緗?錛屽鏋滃凡緇忕疆榪?鐨勮瘽錛岄偅涔堣鏁板氨鏄噸澶嶇殑鏁般傚氨鏄敤浣嶅浘鏉ュ疄鐜扮殑銆?濡傛灉鑰冭檻絀洪棿澶嶆潅搴︾殑璇濓紝鍏剁┖闂碠錛圢錛?/p>

 

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <math.h>  
  4. #include<time.h>  
  5. #define sum(x)  (x*(x+1)/2)   
  6. void xor_findDup(int * arr,int NUM)    
  7. {    
  8.     int *arrayflag = (int *)malloc(NUM*sizeof(int));      
  9.     int i=1;  
  10.       
  11.     while(i<NUM)  
  12.     {  
  13.         arrayflag[i] = false;  
  14.         i++;  
  15.     }     
  16.       
  17.     for( i=0; i<NUM; i++)         
  18.     {         
  19.         if(arrayflag[arr[i]] == false)            
  20.             arrayflag[arr[i]] = true;          // 緗嚭鐜版爣蹇? 
  21.           
  22.         else      
  23.         {   
  24.             printf("%d\n",arr[i]);  
  25.             return ; //榪斿洖宸茬粡鍑虹幇鐨勫? 
  26.         }  
  27.           
  28.      }    
  29. }    
  30.  
  31. int main(int argc, char* argv[])    
  32. {    
  33.     int a[] = {1,3,2,4,3};    
  34.     xor_findDup(a,5);    
  35.     return 0;    
  36. }    

 鏂規硶鍥涳細鍥哄畾鍋忕Щ閲忔硶

a[N]錛岄噷闈㈡槸1鑷砃-1銆傚師鏁扮粍a[i]鏈澶ф槸N-1錛岃嫢a[i]=K鍦ㄦ煇澶勫嚭鐜板悗錛屽皢a[K]鍔犱竴嬈錛屽仛鏍囪錛屽綋鏌愬a[i]=K鍐嶆鎴愮珛鏃訛紝鏌ョ湅a[K]鍗沖彲鐭ラ亾K宸茬粡鍑虹幇榪囥傝鏂規硶涓嶇敤鍙﹀寮杈烵(N)鐨勫唴瀛樼┖闂達紝浣嗘槸鍦ㄦ煡閲嶄箣鍚庤灝嗘暟緇勮繘琛屾仮澶嶃?/p>

 

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <math.h>  
  4. #include<time.h>  
  5. void xor_findDup(int * arr,int NUM)    
  6. {    
  7.     int temp=0;       
  8.     for(int i=0; i<NUM; i++)          
  9.     {  
  10.           
  11.         if(arr[i]>=NUM)           
  12.             temp=arr[i]-NUM;            // 璇ュ奸噸澶嶄簡錛屽洜涓烘浘緇忓姞榪囦竴嬈′簡        
  13.         else              
  14.             temp=arr[i];          
  15.                   
  16.         if(arr[temp]<NUM)         
  17.         {         
  18.             arr[temp]+=NUM; //鍋氫笂鏍囪            
  19.         }  
  20.           
  21.         else              
  22.         {             
  23.             printf("鏈夐噸澶?nbsp;%d\n",temp);              
  24.             return;           
  25.         }         
  26.     }  
  27.               
  28.     printf("鏃犻噸澶?);  
  29.     return ;   
  30. }    
  31. void clear(int *data,int num)//娓呯悊鏁版嵁  
  32. {  
  33.     for(int i=0;i<num;i++)  
  34.     {  
  35.         if(data[i]>num)  
  36.             data[i]-=num;  
  37.     }  
  38.  
  39. }  
  40. int main(int argc, char* argv[])    
  41. {    
  42.     int a[] = {2,4,3,4,1};    
  43.     xor_findDup(a,5);    
  44.     clear(a,5);  
  45.     return 0;    
  46. }    

 鏂規硶浜旓細絎﹀彿鏍囧織娉?/p>

涓婁釜鏂規硶鍑虹幇鍚庢槸鍔燦錛屼篃鍙互鍑虹幇鍚庡姞涓礋鍙鳳紝灝辨槸絎﹀彿鏍囧織娉曘?/p>

 

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <string.h>  
  4. #include <math.h>  
  5. #include<time.h>  
  6.  
  7. void xor_findDup(int * arr,int NUM)    
  8. {         
  9.     int temp=0;          
  10.     for(int i=0; i<NUM; i++)        
  11.     {                    
  12.         if(arr[i]<0)     
  13.             temp=0-arr[i];  // 璇ュ奸噸澶嶄簡錛屽洜涓烘浘緇忓姞榪囦竴嬈′簡     
  14.         else                           
  15.             temp=arr[i];                
  16.         if(arr[temp]>0)             
  17.         {                    
  18.             arr[temp]=0-arr[temp]; //鍋氫笂鏍囪        
  19.         }                
  20.         else              
  21.         {               
  22.             printf("鏈夐噸澶?nbsp;%d\n",temp);      
  23.             return;               
  24.         }            
  25.     }                
  26.     printf("鏃犻噸澶?);    
  27.     return ;    
  28.  }     
  29.  void clear(int *data,int num)//娓呯悊鏁版嵁  
  30.  {     
  31.      for(int i=0;i<num;i++)     
  32.      {        
  33.          if(data[i]<0)           
  34.              data[i]=0-data[i];     
  35.    }     
  36. }    
  37.  int main(int argc, char* argv[])    
  38.  {        
  39.      int a[] = {3,2,1,4,1};       
  40.      xor_findDup(a,5);     
  41.      clear(a,5);      
  42.      return 0;    
  43.  }      

浠ヤ笂鐨勬柟娉曞鏁扮粍鍏冪礌鐨勫肩殑鑼冨洿鏄湁闄愬埗鐨勶紝濡傛灉鏁扮粍鍏冪礌鐨勫間笉鏄湪1鑷砃-1鑼冨洿鏃訛紝鍙互鍏堟眰鍑烘暟緇勫厓绱犵殑鏈澶у箋?/p>

 

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <string.h>  
  4. #include <math.h>  
  5. #include<time.h>  
  6.  
  7. int  do_dup_mal(int arr[], int n, int *pre, int *back)  
  8. {  
  9.     int MAX = -1;  
  10.     int i = 0;  
  11.     int sameVal = -1;  
  12.     *pre = *back = -1;  
  13.       
  14.     for (int j=0; j<n; j++)  
  15.     {  
  16.         if (arr[j] > MAX) MAX = arr[j];//鎵懼嚭鏁扮粍涓殑鏈澶ф暟  
  17.     }  
  18.       
  19.     char *arrayflag = new char[MAX+1] ;  
  20.     if (NULL == arrayflag)  
  21.         return -1;  
  22.     memset(arrayflag, 0, MAX+1 ); // '\0' == 0  
  23.     for(i=0; i<n; i++)  
  24.     {  
  25.         if(arrayflag[arr[i]] == '\0')  
  26.             arrayflag[arr[i]] = '\1'// 緗嚭鐜版爣蹇? 
  27.         else 
  28.         {  
  29.             sameVal = arr[i]; //榪斿洖宸茬粡鍑虹幇鐨勫? 
  30.             *back = i;  
  31.             break;  
  32.         }  
  33.     }  
  34.     delete[] arrayflag;  
  35.     if (i < n)  
  36.     {  
  37.         for (int j=0; j<n; j++)  
  38.         {  
  39.             if (sameVal == arr[j])  
  40.             {  
  41.                 *pre = j;  
  42.                 return true;  
  43.             }  
  44.         }  
  45.     }  
  46.     return false;  
  47. }  
  48.  
  49.  
  50.  
  51.  
  52.  
  53. void main(int argc, char *argv[])  
  54. {  
  55.     int prePos = -1, backPos = -1;  
  56.     int myArry[11];  
  57.     myArry[0] = 1;  
  58.     myArry[1] = 3;  
  59.     myArry[2] = 3;  
  60.     myArry[3] = 4;  
  61.     myArry[4] = 5;  
  62.     myArry[5] = 22;  
  63.     myArry[6] = 7;  
  64.     myArry[7] = 13;  
  65.     myArry[8] = 9;  
  66.     myArry[9] = 2;  
  67.     myArry[10] = 12;  
  68.       
  69.       
  70.     if (do_dup_mal(myArry, 11, &prePos, &backPos) )  
  71.         printf("%d\n",myArry[prePos]);  
  72. }  
  73.    

杞細http://buptdtt.blog.51cto.com/2369962/749049  



fly 2014-03-27 19:40 鍙戣〃璇勮
]]>
蹇熸帓搴忥紙Quicksort錛夌殑Javascript瀹炵幇錛堣漿錛?/title><link>http://www.tkk7.com/jlin/archive/2013/04/11/397675.html</link><dc:creator>fly</dc:creator><author>fly</author><pubDate>Wed, 10 Apr 2013 16:35:00 GMT</pubDate><guid>http://www.tkk7.com/jlin/archive/2013/04/11/397675.html</guid><wfw:comment>http://www.tkk7.com/jlin/comments/397675.html</wfw:comment><comments>http://www.tkk7.com/jlin/archive/2013/04/11/397675.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/jlin/comments/commentRss/397675.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/jlin/services/trackbacks/397675.html</trackback:ping><description><![CDATA[<p>鐩墠錛屾渶甯歌鐨勬帓搴忕畻娉曞ぇ姒傛湁涓冨叓縐嶏紝鍏朵腑<a target="_blank">"蹇熸帓搴?</a>錛圦uicksort錛変嬌鐢ㄥ緱鏈騫挎硾錛岄熷害涔熻緝蹇傚畠鏄浘鐏靛寰椾富C. A. R. Hoare錛?934--錛変簬1960鏃舵彁鍑烘潵鐨勩?/p> <p><img src="http://image.beekka.com/blog/201104/bg2011040402.jpg" alt="" /></p> <p>"蹇熸帓搴?鐨勬濇兂寰堢畝鍗曪紝鏁翠釜鎺掑簭榪囩▼鍙渶瑕佷笁姝ワ細</p> <blockquote> <p>銆銆錛?錛夊湪鏁版嵁闆嗕箣涓紝閫夋嫨涓涓厓绱犱綔涓?鍩哄噯"錛坧ivot錛夈?/p> <p>銆銆錛?錛夋墍鏈夊皬浜?鍩哄噯"鐨勫厓绱狅紝閮界Щ鍒?鍩哄噯"鐨勫乏杈癸紱鎵鏈夊ぇ浜?鍩哄噯"鐨勫厓绱狅紝閮界Щ鍒?鍩哄噯"鐨勫彸杈廣?/p> <p>銆銆錛?錛夊"鍩哄噯"宸﹁竟鍜屽彸杈圭殑涓や釜瀛愰泦錛屼笉鏂噸澶嶇涓姝ュ拰絎簩姝ワ紝鐩村埌鎵鏈夊瓙闆嗗彧鍓╀笅涓涓厓绱犱負姝€?/p></blockquote> <p>涓句緥鏉ヨ錛岀幇鍦ㄦ湁涓涓暟鎹泦{85, 24, 63, 45, 17, 31, 96, 50}錛屾庝箞瀵瑰叾鎺掑簭鍛紵</p> <p>絎竴姝ワ紝閫夋嫨涓棿鐨勫厓绱?5浣滀負"鍩哄噯"銆傦紙鍩哄噯鍊煎彲浠ヤ換鎰忛夋嫨錛屼絾鏄夋嫨涓棿鐨勫兼瘮杈冨鏄撶悊瑙c傦級</p> <p><img src="http://image.beekka.com/blog/201104/bg2011040403.png" alt="" /></p> <p>絎簩姝ワ紝鎸夌収欏哄簭錛屽皢姣忎釜鍏冪礌涓?鍩哄噯"榪涜姣旇緝錛屽艦鎴愪袱涓瓙闆嗭紝涓涓?灝忎簬45"錛屽彟涓涓?澶т簬絳変簬45"銆?/p> <p><img src="http://image.beekka.com/blog/201104/bg2011040404.png" alt="" /></p> <p>絎笁姝ワ紝瀵逛袱涓瓙闆嗕笉鏂噸澶嶇涓姝ュ拰絎簩姝ワ紝鐩村埌鎵鏈夊瓙闆嗗彧鍓╀笅涓涓厓绱犱負姝€?/p> <p><img src="http://image.beekka.com/blog/201104/bg2011040405.png" alt="" /></p> <p><img src="http://image.beekka.com/blog/201104/bg2011040406.png" alt="" /></p> <p><img src="http://image.beekka.com/blog/201104/bg2011040407.png" alt="" /></p> <p><img src="http://image.beekka.com/blog/201104/bg2011040408.png" alt="" /></p> <p>涓嬮潰鍙傜収緗戜笂鐨勮祫鏂欙紙<a target="_blank">榪欓噷</a>鍜?a target="_blank">榪欓噷</a>錛夛紝鐢↗avascript璇█瀹炵幇涓婇潰鐨勭畻娉曘?/p> <p>棣栧厛錛屽畾涔変竴涓猶uickSort鍑芥暟錛屽畠鐨勫弬鏁版槸涓涓暟緇勩?/p> <blockquote> <p>var quickSort = function(arr) {</p> <p>};</p></blockquote> <p>鐒跺悗錛屾鏌ユ暟緇勭殑鍏冪礌涓暟錛屽鏋滃皬浜庣瓑浜?錛屽氨榪斿洖銆?/p> <blockquote> <p>var quickSort = function(arr) {</p> <p>銆銆<strong>if (arr.length <= 1) { return arr; }</strong></p> <p>};</p></blockquote> <p>鎺ョ潃錛岄夋嫨"鍩哄噯"錛坧ivot錛夛紝騫跺皢鍏朵笌鍘熸暟緇勫垎紱伙紝鍐嶅畾涔変袱涓┖鏁扮粍錛岀敤鏉ュ瓨鏀句竴宸︿竴鍙崇殑涓や釜瀛愰泦銆?/p> <blockquote> <p>var quickSort = function(arr) {</p> <p>銆銆if (arr.length <= 1) { return arr; }</p> <p>銆銆<strong>var pivotIndex = Math.floor(arr.length / 2) ;</strong></p> <p>銆銆<strong>var pivot = arr.splice(pivotIndex, 1)[0];</strong></p> <p>銆銆<strong>var left = [];</strong></p> <p>銆銆<strong>var right = [];</strong></p> <p>};</p></blockquote> <p>鐒跺悗錛屽紑濮嬮亶鍘嗘暟緇勶紝灝忎簬"鍩哄噯"鐨勫厓绱犳斁鍏ュ乏杈圭殑瀛愰泦錛屽ぇ浜庡熀鍑嗙殑鍏冪礌鏀懼叆鍙寵竟鐨勫瓙闆嗐?/p> <blockquote> <p>var quickSort = function(arr) {</p> <p>銆銆if (arr.length <= 1) { return arr; }</p> <p>銆銆var pivotIndex = Math.floor(arr.length / 2) ;</p> <p>銆銆var pivot = arr.splice(pivotIndex, 1)[0];</p> <p>銆銆var left = [];</p> <p>銆銆var right = [];</p> <p>銆銆<strong>for (var i = 0; i < arr.length; i++){</strong></p> <p>銆銆銆銆<strong>if (arr[i] < pivot) {</strong></p> <p>銆銆銆銆銆銆<strong>left.push(arr[i]);</strong></p> <p>銆銆銆銆<strong>} else {</strong></p> <p>銆銆銆銆銆銆<strong>right.push(arr[i]);</strong></p> <p>銆銆銆銆<strong>}</strong></p> <p>銆銆<strong>}</strong></p> <p>};</p></blockquote> <p>鏈鍚庯紝浣跨敤閫掑綊涓嶆柇閲嶅榪欎釜榪囩▼錛屽氨鍙互寰楀埌鎺掑簭鍚庣殑鏁扮粍銆?/p> <blockquote> <p>var quickSort = function(arr) {</p> <p>銆銆if (arr.length <= 1) { return arr; }</p> <p>銆銆var pivotIndex = Math.floor(arr.length / 2);</p> <p>銆銆var pivot = arr.splice(pivotIndex, 1)[0];</p> <p>銆銆var left = [];</p> <p>銆銆var right = [];</p> <p>銆銆for (var i = 0; i < arr.length; i++){</p> <p>銆銆銆銆if (arr[i] < pivot) {</p> <p>銆銆銆銆銆銆left.push(arr[i]);</p> <p>銆銆銆銆} else {</p> <p>銆銆銆銆銆銆right.push(arr[i]);</p> <p>銆銆銆銆}</p> <p>銆銆}</p> <p>銆銆<strong>return quickSort(left).concat([pivot], quickSort(right));</strong></p> <p>};</p></blockquote> <p>浣跨敤鐨勬椂鍊欙紝鐩存帴璋冪敤quickSort()灝辮浜嗐?</p> <p><img src="http://image.beekka.com/blog/201104/bg2011040409.png" alt="" /></p> <p>錛堝畬錛?br /></p><!-- /div --><img src ="http://www.tkk7.com/jlin/aggbug/397675.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/jlin/" target="_blank">fly</a> 2013-04-11 00:35 <a href="http://www.tkk7.com/jlin/archive/2013/04/11/397675.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java瀹炵幇蹇熸帓搴?杞?http://www.tkk7.com/jlin/archive/2013/04/11/397674.htmlflyflyWed, 10 Apr 2013 16:30:00 GMThttp://www.tkk7.com/jlin/archive/2013/04/11/397674.htmlhttp://www.tkk7.com/jlin/comments/397674.htmlhttp://www.tkk7.com/jlin/archive/2013/04/11/397674.html#Feedback0http://www.tkk7.com/jlin/comments/commentRss/397674.htmlhttp://www.tkk7.com/jlin/services/trackbacks/397674.html

         蹇熸帓搴忕殑鍩烘湰鎬濇兂錛?/p>

         閫氳繃涓瓚熸帓搴忓皢寰呮帓搴忚褰曞垎鍓叉垚鐙珛鐨勪袱閮ㄥ垎錛屽叾涓竴閮ㄥ垎璁板綍鐨勫叧閿瓧鍧囨瘮鍙︿竴閮ㄥ垎鍏抽敭瀛楀皬錛屽垯鍒嗗埆瀵硅繖涓ら儴鍒嗙戶緇繘琛屾帓搴忥紝鐩村埌鏁翠釜搴忓垪鏈夊簭銆?/p>

       鍏堢湅涓涓嬭繖騫呭浘錛?/p>


鎶婃暣涓簭鍒楃湅鍋氫竴涓暟緇勶紝鎶婄闆朵釜浣嶇疆鐪嬪仛涓醬錛屽拰鏈鍚庝竴涓瘮錛屽鏋滄瘮瀹冨皬浜ゆ崲錛屾瘮瀹冨ぇ涓嶅仛浠諱綍澶勭悊錛涗氦鎹簡浠ュ悗鍐嶅拰灝忕殑閭g姣旓紝姣斿畠灝忎笉浜ゆ崲錛屾瘮浠栧ぇ浜ゆ崲銆傝繖鏍峰驚鐜線澶嶏紝涓瓚熸帓搴忓畬鎴愶紝宸﹁竟灝辨槸姣斾腑杞村皬鐨勶紝鍙寵竟灝辨槸姣斾腑杞村ぇ鐨勶紝鐒跺悗鍐嶇敤鍒嗘不娉曪紝鍒嗗埆瀵硅繖涓や釜鐙珛鐨勬暟緇勮繘琛屾帓搴忋?/p>

    

  1. public int getMiddle(Integer[] list, int low, int high) {  
  2.         int tmp = list[low];    //鏁扮粍鐨勭涓涓綔涓轟腑杞?nbsp; 
  3.         while (low < high) {  
  4.             while (low < high && list[high] > tmp) {  
  5.                 high--;  
  6.             }  
  7.             list[low] = list[high];   //姣斾腑杞村皬鐨勮褰曠Щ鍒頒綆绔?nbsp; 
  8.             while (low < high && list[low] < tmp) {  
  9.                 low++;  
  10.             }  
  11.             list[high] = list[low];   //姣斾腑杞村ぇ鐨勮褰曠Щ鍒伴珮绔?nbsp; 
  12.         }  
  13.         list[low] = tmp;              //涓醬璁板綍鍒板熬  
  14.         return low;                   //榪斿洖涓醬鐨勪綅緗?nbsp; 
  15.     }  

       閫掑綊褰㈠紡鐨勫垎娌繪帓搴忕畻娉曪細

 

      

  1. public void _quickSort(Integer[] list, int low, int high) {  
  2.         if (low < high) {  
  3.             int middle = getMiddle(list, low, high);  //灝唋ist鏁扮粍榪涜涓鍒嗕負浜?nbsp; 
  4.             _quickSort(list, low, middle - 1);        //瀵逛綆瀛楄〃榪涜閫掑綊鎺掑簭  
  5.             _quickSort(list, middle + 1, high);       //瀵歸珮瀛楄〃榪涜閫掑綊鎺掑簭  
  6.         }  
  7.     }  

  
  1. public void quick(Integer[] str) {  
  2.         if (str.length > 0) {    //鏌ョ湅鏁扮粍鏄惁涓虹┖  
  3.             _quickSort(str, 0, str.length - 1);  
  4.         }  
  5.     }  

   緙栧啓嫻嬭瘯鏂規硶錛?

 

 

  1. public class TestMain {  
  2.   
  3.     /**  
  4.      * @param args  
  5.      */  
  6.     public static void main(String[] args) {  
  7.         // TODO Auto-generated method stub  
  8.          Integer[] list={34,3,53,2,23,7,14,10};  
  9.          QuicSort qs=new QuicSort();  
  10.          qs.quick(list);  
  11.          for(int i=0;i<list.length;i++){  
  12.              System.out.print(list[i]+" ");  
  13.          }  
  14.          System.out.println();  
  15.     }  
  16.   
  17. }  
     鐪嬩竴涓嬫墦鍗扮粨鏋滃惂錛?

 

     2 3 7 10 14 23 34 53
   

     榪欐牱灝辨帓搴忓ソ浜嗭紝蹇熸帓搴忔槸瀵瑰啋娉℃帓搴忕殑涓縐嶆敼榪涳紝騫沖潎鏃墮棿澶嶆潅搴︽槸O(nlogn)銆?br />



fly 2013-04-11 00:30 鍙戣〃璇勮
]]>
瀛楃涓插尮閰嶇畻娉曟葷粨錛堣漿錛?/title><link>http://www.tkk7.com/jlin/archive/2012/04/29/377004.html</link><dc:creator>fly</dc:creator><author>fly</author><pubDate>Sat, 28 Apr 2012 16:06:00 GMT</pubDate><guid>http://www.tkk7.com/jlin/archive/2012/04/29/377004.html</guid><wfw:comment>http://www.tkk7.com/jlin/comments/377004.html</wfw:comment><comments>http://www.tkk7.com/jlin/archive/2012/04/29/377004.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/jlin/comments/commentRss/377004.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/jlin/services/trackbacks/377004.html</trackback:ping><description><![CDATA[<div class="44c4c8o" id="article_content" class="article_content"> <p>鎴戞兂璇翠竴鍙?#8220;鎴戞棩錛屾垜璁ㄥ帉KMP錛?#8221;銆?br />KMP铏界劧緇忓吀錛屼絾鏄悊瑙h搗鏉ユ瀬鍏跺鏉傦紝濂戒笉瀹規槗鐞嗚В濂戒簡錛屼究璧風爜鏉ュ法楹葷儲錛?br />鑰佸瓙灝辨槸浠婂ぉ鍥句功棣嗗湪鍐欎簡鍑犱釜灝忔椂鎵嶅媺寮哄啓浜嗕竴涓湁bug鐨勩佹晥鐜囦笉楂樼殑KMP錛岀壒鍒槸璁$畻next鏁扮粍鐨勯儴鍒嗐?br /><br />鍏跺疄錛屾瘮KMP綆楁硶閫熷害蹇殑綆楁硶澶ф妸澶ф妸錛岃屼笖鐞嗚В璧鋒潵鏇寸畝鍗曪紝涓轟綍闈炶鎶撲綇KMP鍛紵絎旇瘯鍑虹幇瀛楃涓叉ā寮忓尮閰嶆椂鐩存帴涓妔unday綆楁硶錛屾棦綆鍗曞張楂樻晥錛屼綍涔愯屼笉涓猴紵<br />璇村疄璇濓紝鎯沖埌sunday綆楁硶鐨勯偅涓漢錛岀粷瀵規槸鍙戞暎鎬濈淮錛岀粷瀵圭墰銆傚綋鎴戝湪琚獽MP鎶樼(鐨勫鍛涚殑鏃跺欙紝鎴戝氨鐞㈢(錛屾湁娌℃湁鍒殑濂界畻娉曞憿錛燂紵鐞㈢(浜嗗崐澶╀篃娌℃兂鍑轟釜鎵浠ョ劧鏉ャ傜鍟婏紝鑴戝瓙涓嶅鍙戞暎銆?br /><br />涓嬮潰璐翠笂涓浣嶅厔寮熷啓鐨勭畻娉曟葷粨錛屽緢綆鍗曪紙寤鴻KMP閮ㄥ垎灝變笉鐢ㄧ湅浜嗭紝鐪嬩簡璐硅剳瀛愶級銆?br />鍙傝錛?a >http://hi.baidu.com/willamette/blog/item/02bd0b5599c8b4c0b645ae06.html</a></p> <p>瓚佺潃鍋歅resentation鐨勫姛澶紝欏轟究鍋氫竴涓葷粨</p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">瀛楃涓插尮閰嶏細</p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: Times New Roman">---willamette</span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鍦ㄥ尮閰嶄覆涓鎵炬ā寮忎覆鏄惁鍑虹幇錛屾敞鎰忓拰鏈闀垮叕鍏卞瓙搴忓垪鐩稿尯鍒?span style="font-family: Times New Roman">(LCS: Longest Common Substring)</span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><br /><strong>-錛?/strong><span style="font-family: Times New Roman"><strong>Brute Force(BF鎴栬洰鍔涙悳绱?</strong></span><strong>綆楁硶錛?/strong></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">榪欐槸涓栫晫涓婃渶綆鍗曠殑綆楁硶浜嗐?br />棣栧厛灝嗗尮閰嶄覆鍜屾ā寮忎覆宸﹀榻愶紝鐒跺悗浠庡乏鍚戝彸涓涓竴涓繘琛屾瘮杈冿紝濡傛灉涓嶆垚鍔熷垯妯″紡涓插悜鍙崇Щ鍔ㄤ竴涓崟浣嶃?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">閫熷害鏈鎱€?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">閭d箞錛屾庝箞鏀硅繘鍛紵</p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鎴戜滑娉ㄦ剰鍒?span style="font-family: Times New Roman">Brute Force</span>綆楁硶鏄瘡嬈$Щ鍔ㄤ竴涓崟浣嶏紝涓涓竴涓崟浣嶇Щ鍔ㄦ樉鐒跺お鎱紝鏄笉鏄彲浠ユ壘鍒頒竴浜涘姙娉曪紝璁╂瘡嬈¤兘澶熻妯″紡涓插縐誨姩涓浜涗綅緗憿錛?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">褰撶劧鏄彲浠ョ殑銆?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鎴戜滑涔熸敞鎰忓埌錛?span style="font-family: Times New Roman">Brute Force</span>鏄緢涓?span style="font-family: Times New Roman">intelligent</span>鐨勶紝姣忔鍖歸厤涓嶆垚鍔熺殑鏃跺欙紝鍓嶉潰鍖歸厤鎴愬姛鐨勪俊鎭兘琚綋浣滃簾鐗╀涪寮冧簡錛屽綋鐒訛紝灝卞鐜板湪鐨勫彉搴熶負瀹濅竴鏍鳳紝鎴戜滑涔熷悓鏍峰彲浠ュ皢鍓嶉潰鍖歸厤鎴愬姛鐨勪俊鎭埄鐢ㄨ搗鏉ワ紝鏋佸ぇ鍦板噺灝戣綆楁満鐨勫鐞嗘椂闂達紝鑺傜渷鎴愭湰銆?span style="font-family: Times New Roman">^_^</span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: Times New Roman">娉ㄦ剰錛岃洰鍔涙悳绱㈢畻娉曡櫧鐒墮熷害鎱紝浣嗗叾寰堥氱敤錛屾枃绔犳渶鍚庝細鏈変竴浜涙洿澶氱殑鍏充簬铔姏鎼滅儲鐨勪俊鎭?/span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><br /><strong>-: KMP綆楁硶<br /></strong><br />棣栧厛浠嬬粛鐨勫氨鏄?span style="font-family: Times New Roman">KMP</span>綆楁硶銆?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鍘熷璁烘枃錛?span style="font-family: Times New Roman">Knuth D.E., Morris J.H., and Pratt V.R., Fast pattern matching in strings, SIAM Journal on Computing, 6(2), 323-350, 1977.</span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">榪欎釜綆楁硶瀹炲湪鏄お鏈夊悕浜嗭紝澶у涓婄殑綆楁硶璇劇▼闄や簡鏈絎ㄧ殑<span style="font-family: Times New Roman">Brute Force</span>綆楁硶錛岀劧鍚庡氨浠嬬粛浜?span style="font-family: Times New Roman">KMP</span>綆楁硶銆備篃闅炬紝鍛靛懙銆傝皝璁?span style="font-family: Times New Roman">Knuth D.E.</span>榪欎箞<span style="font-family: Times New Roman">world famous</span>鍛紝涓嶄粎鎷夸簡鍥劇伒濂栵紝鑰屼笖榪樺啓鍑轟簡璁$畻鏈虹晫鐨?span style="font-family: Times New Roman">Bible <The Art of Computer Programming>(</span>涓氬唴浜哄+涓鑸畝縐?span style="font-family: Times New Roman">TAOCP).</span>紼嶇◢鎻愪竴涓嬶紝鏈変釜鍙?span style="font-family: Times New Roman">H.A.Simon</span>鐨勫浼欙紝涓嶄粎鎷夸簡<span style="font-family: Times New Roman">Turing Award</span>錛岄『鎵嬫嬁浜嗕釜<span style="font-family: Times New Roman">Nobel Economics Award</span>錛屽仛浜?span style="font-family: Times New Roman">AI</span>鐨勭埜鐖革紝榪樻槸<span style="font-family: Times New Roman">Chicago Univ</span>鐨?span style="font-family: Times New Roman">Politics PhD</span>錛屽彲璋撳叏鎵嶃?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 'Times New Roman'">KMP鐨勫叿浣撴弿榪扮暐鍘伙紝鏁欑涔︿竴澶ф妸銆?/span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><br /><strong>-錛欻orspool綆楁硶<br /></strong><br /><span style="font-family: Times New Roman">Horspool</span>綆楁硶銆?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">褰撶劧錛屾湁甯傚満灝辨湁绔炰簤錛屽瓧絎︿覆鍖歸厤榪欎箞澶т竴涓競鍦猴紝涓嶅彲鑳借<span style="font-family: Times New Roman">BF</span>鍜?span style="font-family: Times New Roman">KMP</span>鍏ㄩ儴鍗犱簡錛屼簬鏄張鍑虹幇浜嗗嚑涓己鍔茬殑瀵規墜銆?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">絎竴涓櫥鍦虹殑鏄?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">璁烘枃錛?span style="font-family: Times New Roman">Horspool R.N., 1980, Practical fast searching in strings, Software - Practice & Experience, 10(6):501-506</span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: Times New Roman">Horspool</span>綆楁硶鐨勬濇兂寰堢畝鍗曠殑銆備笉榪囨湁涓垱鏂頒箣澶勫氨鏄ā寮忎覆鏄粠鍙沖悜宸﹁繘琛屾瘮杈冪殑銆傚緢濂藉緢寮哄ぇ錛屼負鍚庢潵鐨勭畻娉曞獎鍝嶅緢澶с?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鍖歸厤涓詫細<span style="font-family: Times New Roman"><span style="color: red">abcbc</span>sdxzcxx</span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">妯″紡涓詫細<span style="color: red"><span style="font-family: Times New Roman">cbcac</span></span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">榪欎釜鏃跺欐垜浠粠鍙沖悜宸﹁繘琛屽鏆楀彿錛?span style="font-family: Times New Roman">c-c</span>錛屾仼瀵逛笂浜嗭紝絎簩涓?span style="font-family: Times New Roman">b-a</span>錛屼笉瀵瑰晩錛屾垜浠簲璇ユ庝箞鍔烇紵闅鵑亾灝辮繖涔堟斁寮冧箞銆備簬鏄紝妯″紡涓蹭粠涓嶅尮閰嶇殑閭d釜瀛楃寮濮嬩粠鍙沖悜宸﹀鎵懼尮閰嶄覆涓笉鍖歸厤鐨勫瓧絎?span style="font-family: Times New Roman">b</span>鐨勪綅緗紝緇撴灉鍙戠幇灞呯劧鏈夛紝璧跺揩瀵逛笂璧跺揩瀵逛笂錛屽埆鑰借浜嗐?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鍖歸厤涓詫細<span style="font-family: Times New Roman">ab<span style="color: red">cbcsd</span>xzcxx</span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">妯″紡涓詫細<span style="font-family: Times New Roman"><span> </span><span style="color: red">cbcac</span></span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鐒跺悗緇х畫浠庢渶鍙寵竟鐨勫瓧絎︿粠鍙沖悜宸﹁繘琛屾瘮杈冦傝繖鏃跺欙紝鎴戜滑鍙戠幇浜嗭紝<span style="font-family: Times New Roman">d-c</span>涓嶅尮閰嶅晩錛岃屼笖妯″紡絀塊噷闈㈡病鏈夊櫌錛屾病鍔炴硶錛屽彧濂界Щ鍔ㄤ竴涓ā寮忎覆闀垮害鐨勫崟浣嶄簡銆?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鍖歸厤涓詫細<span style="font-family: Times New Roman">abcbcsd<span style="color: red">xzcxx</span></span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">妯″紡涓詫細<span style="font-family: Times New Roman"><span> </span><span>     </span><span style="color: red">cbcac<br /><br /><span style="color: #000000"><strong><span style="font-family: andale mono,times">-錛欱oyer-Moore綆楁硶</span></strong><br /></span><br /></span></span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">瀵逛簬BM綆楁硶錛屼笅闈㈡帹鑽愪竴涓瑙i潪甯鎬紭縐鐨勬枃绔狅紝鍙皳鍥炬枃騫惰寕鍟婏紝鑰屼笖榪樻槸涓狹M鍐欑殑銆?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">Boyer-Moore 緇忓吀鍗曟ā寮忓尮閰嶇畻娉?br /><a >http://blog.csdn.net/iJuliet/archive/2009/05/19/4200771.aspx</a><br /><br /><br /><strong>-錛歋unday綆楁硶</strong></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鏈鍚庝竴涓槸<span style="font-family: Times New Roman">Sunday</span>綆楁硶錛屽疄闄呬笂姣?span style="font-family: Times New Roman">Boyer-Moore</span>榪樺揩錛屽懙鍛點傞暱姹熷悗嫻帹鍓嶆氮銆?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鍘熷璁烘枃錛?span style="font-family: Times New Roman">Daniel M. Sunday, A very fast substring search algorithm, Communications of the ACM, v.33 n.8, p.132-142, Aug. 1990</span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鐪嬪師濮嬭鏂囩殑棰樼洰錛?span style="font-family: Times New Roman">D.M. Sunday</span>璨屼技鏄晠鎰忔兂姘旀皵<span style="font-family: Times New Roman">Boyer-Moore</span>涓や綅澶х墰浼肩殑銆傚懙鍛點備笉榪囧疄闄呬笂鐨勭‘<span style="font-family: Times New Roman">Sunday</span>綆楁硶鐨勭‘姣?span style="font-family: Times New Roman">BM</span>綆楁硶瑕佸揩錛岃屼笖鏇寸畝鍗曘?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: Times New Roman">Sunday</span>鐨勭畻娉曟濇兂鍜?span style="font-family: Times New Roman">Horspool</span>鏈変簺鐩鎬技錛屼絾鏄傚綋鍑虹幇涓嶅尮閰嶇殑鏃跺欙紝鍗翠笉鏄幓鎵懼尮閰嶄覆涓笉鍖歸厤鐨勫瓧絎﹀湪妯″紡涓茬殑浣嶇疆錛岃屾槸鐩存帴鎵炬渶鍙寵竟瀵歸綈鐨勫彸涓浣嶇殑閭d釜瀛楃鍦ㄦā寮忎覆鐨勪綅緗?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">姣斿錛?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鍖歸厤涓詫細<span style="font-family: Times New Roman"><span style="color: red">abcbc</span>zdxzc</span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">妯″紡涓詫細<span style="color: red"><span style="font-family: Times New Roman">zbcac</span></span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鎭╋紝榪欓噷鎴戜滑鐪嬪埌<span style="font-family: Times New Roman">b-a</span>娌℃湁瀵逛笂錛屾垜浠氨鐪嬪尮閰嶄覆涓殑<span style="font-family: Times New Roman">z</span>鍦ㄦā寮忎覆鐨勪綅緗紝鐒跺悗錛屽樋鍢褲?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鍖歸厤涓詫細<span style="font-family: Times New Roman">abcbc<span style="color: red">zdxzc</span></span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">妯″紡涓詫細<span style="font-family: Times New Roman"><span>     </span><span style="color: red">zbcac</span></span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">濡傛灉妯″紡涓蹭腑鐨勬病鏈夐偅涓瓧絎︽庝箞鍔炲憿錛熷緢綆鍗曪紝璺寵繃鍘誨憲銆?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鍖歸厤涓詫細<span style="font-family: Times New Roman"><span style="color: red">abcbc</span>edxzcs</span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">妯″紡涓詫細<span style="color: red"><span style="font-family: Times New Roman">zbcac</span></span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: Times New Roman">e</span>涓嶅湪妯″紡涓蹭腑鍑虹幇</p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">閭d箞鎴戜滑灝?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鍖歸厤涓詫細<span style="font-family: Times New Roman">abcbce<span style="color: red">dxzcs</span></span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">妯″紡涓詫細<span style="font-family: Times New Roman"><span>      </span><span style="color: red">zbcac<br /><br />(2009/10/20琛ュ厖)<br /><strong><span style="color: #000000">RK綆楁硶</span></strong></span></span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鏌愪竴澶╁湪鍥句功棣嗙殑涓鏈畻娉曞垎鏋愯璁′功涓婄炕鍒扮殑銆傛濊礬寰堟柊棰栵紒鍜屽ぇ瀹跺垎浜笅銆?br />鍦ㄤ覆鍖歸厤鐨勭畝鍗曠畻娉曚腑錛屾妸鏂囨湰姣弇涓瓧絎︽瀯鎴愮殑瀛楃孌典綔涓轟竴涓瓧孌碉紝鍜屾ā寮忚繘琛屽尮閰嶆鏌ャ傚鏋滆兘瀵逛竴涓暱搴︿負m鐨勫瓧絎?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">涓茶祴浠ヤ竴涓狧ash鍑芥暟銆傞偅涔堟樉鐒跺彧鏈夐偅浜涗笌妯″紡鍏鋒湁鐩稿悓hash鍑芥暟鍊肩殑鏂囨湰涓殑瀛楃涓叉墠鏈夊彲鑳戒笌妯″紡鍖歸厤錛岃繖鏄繀瑕佹潯浠?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">錛岃屾病鏈夊繀瑕佸幓鑰冭檻鏂囨湰涓墍鏈夐暱搴︿負m鐨勫瓧孌碉紝鍥犺屽ぇ澶ф彁楂樹簡涓插尮閰嶇殑閫熷害銆傚洜姝K綆楁硶鐨勬濇兂鍜孠MP錛孊M錛孲unday絳夋?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">璺駿鐒朵笉鍚岋紒<br />錛堜簨瀹炰笂錛屼箣鍓嶇殑涓插尮閰嶆柟娉曪紝鏄皢妯″紡涓茬殑涓涓竴涓瓧絎︿綔涓哄皬鐨勭壒寰佸幓鍒嗗埆榪涜鍖歸厤錛岃孯K綆楁硶鍒欐槸灝嗕覆鏁翠綋浣滀負涓涓?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鐗瑰緛錛侀毦灝遍毦鍦ㄥ崟涓瓧絎︾殑鐗瑰緛寰堝鏄撴兂寰楀埌錛屾暣浣撲綔涓轟竴涓壒寰佸氨娌¢偅涔堝鏄撴兂寰楀埌浜嗭級<br />濡傛灉鎶婃暣浣撲綔涓轟竴涓壒寰侊紝閭d箞濡備綍蹇熺殑姹傚嚭榪欎釜鏁翠綋鐗瑰緛鐨勭壒寰佸鹼紵錛?br />妯″紡涓茬殑鐗瑰緛鍊間粎闇姹備竴嬈″嵆鍙傚浜庢枃鏈腑鐨勪換鎰弇涓瓧絎︽瀯鎴愮殑瀛椾覆濡備綍蹇熺殑姹傜壒寰佸氨鏄釜闅劇偣浜嗐?br />鎶涚爾寮曠帀錛岃繖閲岀粰鍑轟竴涓畝鍗曠殑鐗瑰緛璁$畻銆?灝嗗瓧絎︿覆鐨勬瘡涓涓瓧絎︾湅鍋氫竴涓暟錛岄偅涔堣繖涓瓧絎︿覆鐨勫氨鏄竴涓暟瀛楁暟緇勶紝閫?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">榪囩Н鍒嗗悜閲忓彲浠ュ揩閫熶換鎰忎竴涓暱搴﹀瓙瀛楃涓茬殑鍚戦噺鍜屻傚彲浠ユ妸瀛楃涓茬殑瀵瑰簲鐨勫瓧絎︽暟緇勭殑鍏冪礌鍜岀湅鍋氳繖涓瓧絎︿覆鏁翠綋鐗瑰緛銆?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">榪欎釜鐗瑰緛鏄彲浠ュ啀O錛?錛夌殑鏃墮棿鍐呮眰鍑虹殑銆傚叾瀹炲師濮嬬殑RK綆楁硶閲岄潰鏄妸瀛楃涓茬湅鍋氫竴涓?6榪涘埗鏁板湪璁$畻鐗瑰緛鐨勩傝繖閲屽氨涓嶅暟</p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鍡︿簡錛屾湁鍏磋叮鐨勫彲浠ユ繁鍏ユ煡鎵?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">aab<span style="color: #ff0000">see</span>sds 妯″紡涓?ees<br />      <span style="color: #ff0000">ees</span></p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">鍙戠幇 see鍚戦噺鍜?== ees鐨勫悜閲忓拰<br />鐒跺悗灝卞see鍜宔es鍋氶愪釜瀛楃鐨勬瘮杈冦傚彂鐜頒笉鍖歸厤緇х畫寰涓嬭蛋<br />aabs<span style="color: #ff0000">ees</span>ds 妯″紡涓?ees<br />        <span style="color: #ff0000">ees</span><br />鍙戠幇 ees鍚戦噺鍜?== ees鐨勫悜閲忓拰 <br />鐒跺悗灝卞ees鍜宔es鍋氶愪釜瀛楃鐨勬瘮杈冦傚彂鐜板尮閰峅K銆?br /><br />鍙﹀榪樻湁 瀛楃涓插尮閰嶈嚜鍔ㄦ満 鍚庣紑鏍戠畻娉曪紙鍒嗗湪綰垮拰闈炲湪綰夸袱縐嶏級絳?瑙佸涓嬫枃绔犮備笉鑳借閭d釜姣旈偅涓洿濂斤紝鍚勪釜綆楁硶閮芥湁鑷繁鐨勪紭鍔垮強鏈浣沖簲鐢ㄥ満鍚堛傚弬鑰冿細<br /><a >http://blog.csdn.net/yifan403/archive/2009/06/16/4272793.aspx</a><br /><br />鍙﹀錛屽叧浜庡妯″紡瀛楃涓插尮閰?鏈堿C綆楁硶錛堝瓧絎︿覆鍖歸厤鑷姩鏈烘濇兂錛?WM綆楁硶錛圔M鍦ㄥ妯″紡鐨勬帹騫垮簲鐢級<br />鍙傝冿細<br /><a >http://blog.csdn.net/ijuliet/category/498465.aspx</a> 璇ュコ瀛愮殑blog鏈夊緢澶氬ソ鏂囩珷銆?br /><br />===============================================================================<br />涓涓猻unday綆楁硶鐨勫疄鐜?br /><a >http://hi.baidu.com/azuryy/blog/item/10d3d3460b97af0e6b63e5cd.html</a></p> <p>澶存枃浠跺畾涔夛細<br />/* Sunday.h */<br />class Sunday <br />{<br />public:<br />   Sunday();<br />   ~Sunday();<br /><br />public:<br />    int find(const char* pattern, const char* text);<br /><br />private:<br />    void preCompute(const char* pattern);<br /><br />private:<br />    //Let's assume all characters are all ASCII<br />    static const int ASSIZE = 128;<br />    int _td[ASSIZE] ;<br />    int _patLength;<br />    int _textLength;<br />};<br /><br /><br />婧愭枃浠?br />/* Sunday.cpp */<br /><br />Sunday::Sunday()<br />{<br />}<br /><br />Sunday::~Sunday()<br />{<br />}<br /><br />void Sunday::preCompute(const char* pattern)<br />{<br />    for(int i = 0; i < ASSIZE; i++ ) <br />        _td[i] = _patLength + 1;<br /><br />    const char* p;<br />    for ( p = pattern; *p; p++)<br />        _td[*p] = _patLength - (p - pattern);<br />}<br /><br />int Sunday::find(const char* pattern, const char* text)<br />{<br />    _patLength = strlen( pattern );<br />    _textLength = strlen( text );<br /><br />    if ( _patLength <= 0 || _textLength <= 0)<br />        return -1;<br /><br />    preCompute( pattern );<br /><br />    const char *t, *p, *tx = text;<br /><br />    while (tx + _patLength <= text + _textLength) <br />    {<br />        for (p = pattern, t = tx; *p; ++p, ++t)<br />        {<br />            if (*p != *t)<br />                break;<br />        }<br />        if (*p == 0)<br />            return tx-text;<br />        tx += _td[tx[_patLength]]; <br />    }<br />    return -1;<br />}<br /><br />綆鍗曟祴璇曚笅錛?br />int main()<br /><br />{<br />    char* text = "blog.csdn,blog.net";<br />    char* pattern = "csdn,blog"    ;<br />    Sunday sunday;<br /><br />    printf("The First Occurence at: %d/n",sunday.find(pattern,text));<br /><br />    return 1;<br />}<br /><br />////////////////////////////////////////////<br />strstr鐨勫疄鐜般?br />闇瑕佽鏄庣殑鏄痵trstr鏄痗璇█鎻愪緵鐨勪嬌鐢˙rute Force瀹炵幇鐨勫瓧絎︿覆鍖歸厤錛岀畝鍗曘侀氱敤鏄叾鏈澶х殑浼樼偣銆傛椂闂村鏉傚害鏄疧(mn)<br />// 涓嬮潰鏄疢icrosoft鐨勫疄鐜?br />//緇忓吀綆楁硶<br />//姣擪MP綆楁硶綆鍗?娌℃湁KMP綆楁硶楂樻晥<br />char * __cdecl strstr (<br />        const char * str1,<br />        const char * str2<br />        )<br />{<br />        char *cp = (char *) str1;<br />        char *s1, *s2;<br />        if ( !*str2 )<br />            return((char *)str1);<br />        while (*cp)<br />        {<br />                s1 = cp;<br />                s2 = (char *) str2;<br />                while ( *s1 && *s2 && !(*s1-*s2) )<br />                        s1++, s2++;<br />                if (!*s2)<br />                        return(cp);<br />                cp++;<br />        }<br />        return(NULL);<br />} </p> <p>鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/whoismickey/archive/2009/02/08/3869367.aspx</a></p> <h4 id="subjcns!7AC7C90F5324ACF3!219" class="beTitle">strstr</h4> <div class="s8wo8mm" id="msgcns!7AC7C90F5324ACF3!219" class="bvMsg"> <div>  glibc閲岀殑strstr鍑芥暟鐢ㄧ殑鏄痓rute-force(naive)綆楁硶錛屽畠涓庡叾瀹冪畻娉曠殑鍖哄埆鏄痵trstr涓嶅pattern(needle)榪涜棰勫鐞嗭紝鎵浠ョ敤璧鋒潵寰堟柟渚褲傜悊璁哄鏉傚害O</div> <div>(mn), 瀹為檯涓婏紝騫沖潎澶嶆潅搴︿負O(n), 澶ч儴鍒嗘儏鍐典笅楂樺害浼樺寲鐨勭畻娉曟ц兘瑕佷紭浜庡熀浜庤嚜鍔ㄦ満鐨勫尮閰嶇畻娉曪紝鍏充簬涓插尮閰嶇畻娉曞彲鍙傝?a >http://www-igm.univ-mlv.fr/~lecroq/string/</a>銆?nbsp;glibc涓嬌鐢ㄤ簡錛?錛塖tephen R. van den Berg鐨勫疄鐜幫紝鍦ㄤ粬鐨勫熀紜涓婏紝錛?錛?span style="font-family: 'Courier New'">Tor Myklebust </span><a >http://sources.redhat.com/ml/libc-alpha/2006-07/msg00028.html</a>緇欏嚭浜嗘洿澶嶆潅鐨勫疄鐜幫紝褰撶劧涔熸洿楂樻晥銆?/div> <div>  BF鏈変竴涓噸瑕佹ц川鏄簨鍏堜笉鐢ㄧ煡閬撲覆鐨勯暱搴︼紝鑰屽熀浜庤煩璺冪殑綆楁硶鏄渶瑕佺敤瀛楃涓查暱搴︽潵鍒ゆ柇緇撴潫浣嶇疆鐨勩傚浣曞揩閫熺殑紜畾瀛楃涓茬粨鏉熶綅緗紝鍙弬鑰?a >http://www.cppblog.com/ant/archive/2007/10/12/32886.html</a>錛屽啓鐨勫緢浠旂粏銆?/div> <div> 灝嗕袱縐嶆濇兂緇撳悎璧鋒潵錛屽彲浠ュ仛鍑烘洿蹇殑strstr錛?錛夈傜害瀹氾紙1錛?涓簊trstrBerg; (2) 涓簊trstrBergo錛岋紙3錛変負lstrstr錛岋紙4錛変負glibc涓殑strstr錛岀畝鍗曟祴璇曚簡涓涓嬶細</div> <div>浠庨暱搴︿負2k鐨勬枃鏈腑鏌ユ壘闀垮害涓?銆?銆?鐨勬ā寮忎覆錛岀粨鏋滃涓?/div> <div>        1               2              9</div> <div>錛?錛?.000006 0.000006 0.000012    </div> <div>錛?錛?.000007 0.000004 0.000008</div> <div>錛?錛?.000002 0.000002 0.000005</div> <div>錛?錛?.000005 0.000005 0.000011<br /><a >涓嬭澆strstr鍜屾祴璇曠▼搴?/a>錛?<br />涓嬭澆鍚庢墽琛?: <br />            unzip testStrstr.zip<br />            cd testStrstr<br />            make test</div> <div><a target="_blank">鍩轟簬sse2鐨剆trstr鍑芥暟</a> 鏄敤sse2鎸囦護闆嗗strstr鐨勪紭鍖?/div></div></div><img src ="http://www.tkk7.com/jlin/aggbug/377004.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/jlin/" target="_blank">fly</a> 2012-04-29 00:06 <a href="http://www.tkk7.com/jlin/archive/2012/04/29/377004.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Boyer-Moore 緇忓吀鍗曟ā寮忓尮閰嶇畻娉曪紙杞級http://www.tkk7.com/jlin/archive/2012/04/28/377001.htmlflyflySat, 28 Apr 2012 14:59:00 GMThttp://www.tkk7.com/jlin/archive/2012/04/28/377001.htmlhttp://www.tkk7.com/jlin/comments/377001.htmlhttp://www.tkk7.com/jlin/archive/2012/04/28/377001.html#Feedback0http://www.tkk7.com/jlin/comments/commentRss/377001.htmlhttp://www.tkk7.com/jlin/services/trackbacks/377001.html闃呰鍏ㄦ枃

fly 2012-04-28 22:59 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 国产伦精品一区二区免费| 亚洲欧洲校园自拍都市| 亚洲午夜无码AV毛片久久| 免费日本黄色网址| 国产日产成人免费视频在线观看| 成人片黄网站色大片免费| 99视频在线精品免费观看6| 在线视频免费观看高清| 思思re热免费精品视频66 | 亚洲欧美自偷自拍另类视| 亚洲伦理中文字幕| 亚洲中文字幕乱码一区| 亚洲AV无码一区二区乱子仑| jizzjizz亚洲日本少妇| 日本一区二区在线免费观看 | 一级黄色毛片免费看| 国产精品免费久久久久影院| a级在线观看免费| 免费国产黄网站在线观看可以下载| 69视频在线是免费观看| 麻豆最新国产剧情AV原创免费| 手机在线毛片免费播放| 免费v片视频在线观看视频| 亚洲综合最新无码专区| 亚洲AV电影院在线观看| 99亚偷拍自图区亚洲| 婷婷亚洲综合五月天小说在线| 一个人免费观看视频在线中文 | 七色永久性tv网站免费看| 最刺激黄a大片免费网站| 在线天堂免费观看.WWW| 免费乱理伦在线播放| 亚洲色精品vr一区二区三区| 亚洲最大成人网色| 亚洲乱色伦图片区小说| 4hu四虎免费影院www| 67pao强力打造高清免费| 永久免费观看的毛片的网站| 中文字幕日韩亚洲| 亚洲欧洲日产韩国在线| 国产尤物在线视精品在亚洲|