рдХреНрдпрд╛ рдЖрдк рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреА рддреИрдпрд╛рд░реА рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ, рдЬрдм рдПрдХ (рдкреНрд░реА) рдЬреВрдирд┐рдпрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреА рдкрд╣рд▓реА рдиреМрдХрд░реА рдХреЗ рд▓рд┐рдП рд╣рд╛рдпрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рдирдХрд╛рд░рд╛рддреНрдордХ рдореЗрдВ рджреЗрдВрдЧреЗред рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЙрддреНрддрд░ рдкрд░ рд╕рдВрджреЗрд╣ рдХрд░реЗрдВред рдмреЗрд╢рдХ, рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рд░рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ - рдХреЛрдИ рдЪрд╛рд▓ рдирд╣реАрдВ! рдирд╣реАрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ PHP рдЬреИрд╕реА рдХреБрдЫ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рд╕рд░рдгрд┐рдпрд╛рдБ, рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рд╕рд░рдгреА рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди "рд╕реНрдореГрддрд┐ рдХреЗ рдирд┐рд░рдВрддрд░ рдЯреБрдХрдбрд╝реЗ" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ "рдкрд╛рд░рдВрдкрд░рд┐рдХ" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдФрд░ рдПрдХ рддрддреНрд╡ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдкрддреЗ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рдХреНрдпрд╛ рд╣реИ?
рдЪрд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рдореЗрдВред рд╣рдо рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд╛рд▓реЗ рдЖрд╡реЗрджрдХ рд╕реЗ рдкреВрд░реНрдгрд╛рдВрдХ n x n рдХреА рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВред рдПрдХ рдЖрджрдореА рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реЗ рдХреБрдЫ рд▓рд┐рдЦрддрд╛ рд╣реИ:
int g[][] = new int[n][n];

. -. , . :
for(int i = 0; i < n; i++) {
      for(int j = 0; j < n; j++) {
          g[i][j] = i + j; 
      }
}


for(int i = 0; i < g.length; i++) {
      for(int j = 0; j < g[i].length; j++) {
          g[i][j] = i + j; 
      }
}

, . , , . , . , , ? - :
for(int i = 0; i < n; i++) {
    g[i][i] = 2* i;
    for(int j = 0; j < i; j++) {
        g[j][i] = g[i][j] = i + j; 
    }
}

g[i][i] = 2* i;
g[i][i] = i + i;
g[i][i] = i << 1;
. : ?. : 2 ; 2 (); . 30. , .
. - n ( ), , .
class A {
  public static void main(String[] args) {
    int n = 8000;
 
    int g[][] = new int[n][n];
    long st, en;
 
    // one
    st = System.nanoTime();
    for(int i = 0; i < n; i++) {
      for(int j = 0; j < n; j++) {
        g[i][j] = i + j; 
      }
    }
    en = System.nanoTime();
    System.out.println("\nOne time " + (en - st)/1000000.d + " msc");
 
    // two
    st = System.nanoTime();
    for(int i = 0; i < n; i++) {
      g[i][i] =  i + i;
      for(int j = 0; j < i; j++) {
        g[j][i] = g[i][j] = i + j; 
      }
    }
    en = System.nanoTime();
    System.out.println("\nTwo time " + (en - st)/1000000.d + " msc");
  }
}


? 10-100 ! . ( ) . , . . , ? ┬л?┬╗. , .
. , , .
, , ┬л Java ┬╗. . Free Pascal Windows
program Time;
uses
   Windows;
   var
      start, finish, res: int64;
      n, i, j: Integer;
      g: Array of Array of Integer;
begin
   n := 10000;
   SetLength(g, n, n);
   QueryPerformanceFrequency(res);
   QueryPerformanceCounter(start);
   for i:=1 to n-1 do
      for j:=1 to n-1 do
         g[i,j] := i + j;
   QueryPerformanceCounter(finish);
   writeln('Time by rows:', (finish - start) / res, ' sec' );
   QueryPerformanceCounter(start);
   for i:=1 to n-1 do
      for j:=1 to n-1 do
         g[j,i] := i + j;
   QueryPerformanceCounter(finish);
   writeln('Time by cols:', (finish - start) / res, ' sec' );
end.


┬л┬╗ . .
?
1. ? тАж
2. ?

Java, n. , ideone.com n=117 ┬л┬╗ . n=118 100 () ! . .
, , ?
. , . , . , . .. , , , .
┬л┬╗ . . , . , . , . .. , . .
. , ? , ┬л┬╗ .
. fps . .


, ┬л┬╗ . .. , . . . , тАФ ? тАФ ideone.com/tMaR2S. 100000 . ?
(Big_Lebowski), . . , leventov. ideone.com/yN1H4g. .. ~10% . - . , . -.

. . , .


Source: https://habr.com/ru/post/In211747/


All Articles