ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ¦p¦ó¨Ï¥Î°}¦C+¦r¨åª«¥ó¤ñ¹ï¸ê®Æªº®É­Ô¥ÎLIKE»yªk?

¡e¼Ò½k¤ñ¹ï¡f¡A¦]¦³§PÂ_¦¡¡A¤j·§¤@¯ë³£¨Ï¥Î¡eÂù¼h°j°é¡f¡A20000*20000=400000000¡A§Ö¤£¤F¡I
­n¤£¡A´N­n¥ý±N³Q¤ñ¹ï¤å¦r¡e©î¤À¡f¦A¯Ç¤J¡e¦r¨åÀÉ¡f¡A¨Ò¦p¡G1234 ¥ý©î¦¨ 1,2,3,4,12,23,34,123,234,1234¡A
¥H¢·­Ó¦r¤¸¨Ó»¡¡A¨C­Ó½s¸¹­n©î¦¨¢²¢µ­Ó¡G=(¦r¤¸¼Æ+1)/2*¦r¤¸¼Æ¡A
¬G²Ä¤@­Ó°j°é¬°¡G20000*36=720000¡A¦A¥[²Ä¤G°j°é20000¡A¦@¶] 740000¡A
¦ý³o¤S²æÂ÷¥¿³W¸Ñªk¡A°Ñ¦Ò§Y¥i¡G¡]ªþÀɦ³¤TºØ¼Ò¦¡¡A¥i¤ñ¸û¬Ý¬Ý¡^
¡@
µ{¦¡½X¡G
  1. Sub ¨ú¼Æ3()
  2. Dim i&, j&, Arr, Brr, Drr, T, SS, xD, xD1, TT$, M%, N%, Y$
  3. T = Timer
  4. [B:B].ClearContents: [H3:H4] = ""
  5. Arr = [A1].Resize(R):  Brr = [B1].Resize(R):  Drr = [D1].Resize(R)
  6. Set xD = CreateObject("Scripting.Dictionary")
  7. Set xD1 = CreateObject("Scripting.Dictionary")
  8. For j = 1 To UBound(Drr)
  9. ¡@¡@TT = Drr(j, 1)
  10. ¡@¡@M = Len(TT)
  11. ¡@¡@N = 1
  12. ¡@¡@xD1.RemoveAll
  13. ¡@¡@Do
  14. ¡@¡@¡@For i = 1 To M
  15. ¡@¡@¡@¡@¡@Y = Mid(TT, N, i)
  16. ¡@¡@¡@¡@¡@If xD1(Y) = "" Then xD(Y) = xD(Y) + 1
  17. ¡@¡@¡@¡@¡@xD1(Y) = 1
  18. ¡@¡@¡@Next i
  19. ¡@¡@¡@N = N + 1: M = M - 1
  20. ¡@¡@Loop Until M = 0
  21. Next j
  22. ¡@
  23. For i = 1 To UBound(Arr)
  24. ¡@¡@Y = Arr(i, 1): j = xD(Y)
  25. ¡@¡@Brr(i, 1) = j
  26. ¡@¡@SS = SS + j
  27. Next i
  28. ¡@
  29. [B1].Resize(R) = Brr:  [H3] = Timer - T: [H4] = SS
  30. End Sub
½Æ»s¥N½X
¡@
ªþÀɤU¸ü¡G
¼Ò½k¤ñ¹ï¨ú¼Æv01.rar (151.53 KB)
¡@

TOP

¦^´_ 11# PKKO


Filter»P¤@¯ë¨ç¼Æ¬Û¦P¡A¹J¤j°j°éÁÙ¬O­n¯Ó¨Ç®É¶¡¡G
Sub Test_Filter()
Dim i&, Arr(3000), Brr, T
For i = 0 To 3000:  Arr(i) = i + 1: Next i
T = Timer
¡@
For i = 1 To 5000:  Brr = Filter(Arr, i): Next i
MsgBox Timer - T
End Sub
¡@
¦ý¤ñ°_Âù°j°é¤w§Ö«Ü¦h¡A¬O¤£¿ùªº¤èªk¡ã¡ã
¡@
­Y­n¤ñ¹ï¤è¦¡¬°¡G
"A12*"¡@¡@"B315*"¡@¡e¶}ÀY¬Û¦P¡f¡@©Î¡@"*256"¡@"*21"¡@¡eµ²§À¬Û¦P¡f¡AÁÙ¬O¥Î Like¡A
Instr«h¥i§PÂ_ÃöÁä¦r¦b¤å¦r¦ê¤¤ªº¦ì¸m¡A¤]¬O±`¥Î»yªk¡ã¡ã

µ{¦¡¨Ì¸ê®Æ¦h¹è¡D«¬ºA¤Îµ²ºc¡A¨Ï¥Î¾A©y§Y¥i¡AµL¦nÃa¤§¤À¡ã¡ã
¡@

TOP

        ÀR«ä¦Û¦b : ±o²z­nÄǤH¡A²zª½­n®ð©M¡C
ªð¦^¦Cªí ¤W¤@¥DÃD