更改

跳到导航 跳到搜索
删除6,983字节 、 2020年9月12日 (六) 08:54
第94行: 第94行:  
一个经常被忽略的关键点是,公布的问题的下界通常是给定一个计算模型,这个模型比你在实践中可以使用的操作集更加有限,因此有一些算法比天真地认为可能的要快。
 
一个经常被忽略的关键点是,公布的问题的下界通常是给定一个计算模型,这个模型比你在实践中可以使用的操作集更加有限,因此有一些算法比天真地认为可能的要快。
   −
==Run-time analysis==
+
== 运行时分析 Run-time analysis ==
    
Run-time analysis is a theoretical classification that estimates and anticipates the increase in ''[[DTIME|running time]]'' (or run-time) of an [[algorithm]] as its ''[[Information|input size]]'' (usually denoted as ''n'') increases.  Run-time efficiency is a topic of great interest in [[computer science]]:  A [[Computer program|program]] can take seconds, hours, or even years to finish executing, depending on which algorithm it implements. While [[software profiling]] techniques can be used to measure an algorithm's run-time in practice, they cannot provide timing data for all infinitely many possible inputs; the latter can only be achieved by the theoretical methods of run-time analysis.
 
Run-time analysis is a theoretical classification that estimates and anticipates the increase in ''[[DTIME|running time]]'' (or run-time) of an [[algorithm]] as its ''[[Information|input size]]'' (usually denoted as ''n'') increases.  Run-time efficiency is a topic of great interest in [[computer science]]:  A [[Computer program|program]] can take seconds, hours, or even years to finish executing, depending on which algorithm it implements. While [[software profiling]] techniques can be used to measure an algorithm's run-time in practice, they cannot provide timing data for all infinitely many possible inputs; the latter can only be achieved by the theoretical methods of run-time analysis.
第125行: 第125行:     
{| class="wikitable"
 
{| class="wikitable"
  −
{| class="wikitable"
  −
  −
{ | class“ wikitable”
  −
  −
|-
  −
  −
|-
      
|-
 
|-
    
! ''n'' (list size)
 
! ''n'' (list size)
  −
! n (list size)
  −
  −
!N (列表大小)
      
! Computer A run-time<br />(in [[nanosecond]]s)
 
! Computer A run-time<br />(in [[nanosecond]]s)
  −
! Computer A run-time<br />(in nanoseconds)
  −
  −
!运行时 br / (以纳秒为单位)
      
! Computer B run-time<br />(in [[nanosecond]]s)
 
! Computer B run-time<br />(in [[nanosecond]]s)
  −
! Computer B run-time<br />(in nanoseconds)
  −
  −
!计算机 b 运行时 br / (以纳秒为单位)
  −
  −
|-
  −
  −
|-
      
|-
 
|-
  −
| 16
  −
  −
| 16
      
| 16
 
| 16
    
| 8  
 
| 8  
  −
| 8
  −
  −
| 8
  −
  −
| 100,000
      
| 100,000  
 
| 100,000  
  −
| 100,000
  −
  −
|-
  −
  −
|-
      
|-
 
|-
    
| 63
 
| 63
  −
| 63
  −
  −
| 63
  −
  −
| 32
      
| 32  
 
| 32  
  −
| 32
      
| 150,000  
 
| 150,000  
  −
| 150,000
  −
  −
| 150,000
  −
  −
|-
  −
  −
|-
      
|-
 
|-
  −
| 250
  −
  −
| 250
      
| 250
 
| 250
    
| 125  
 
| 125  
  −
| 125
  −
  −
| 125
  −
  −
| 200,000
      
| 200,000  
 
| 200,000  
  −
| 200,000
  −
  −
|-
  −
  −
|-
      
|-
 
|-
  −
| 1,000
  −
  −
| 1,000
      
| 1,000
 
| 1,000
    
| 500  
 
| 500  
  −
| 500
  −
  −
| 500
      
| 250,000  
 
| 250,000  
  −
| 250,000
  −
  −
| 250,000
      
|}
 
|}
  −
|}
  −
  −
|}
  −
        第267行: 第178行:     
{| class="wikitable"
 
{| class="wikitable"
  −
{| class="wikitable"
  −
  −
{ | class“ wikitable”
  −
  −
|-
  −
  −
|-
      
|-
 
|-
    
! ''n'' (list size)
 
! ''n'' (list size)
  −
! n (list size)
  −
  −
!N (列表大小)
      
! Computer A run-time<br />(in [[nanosecond]]s)
 
! Computer A run-time<br />(in [[nanosecond]]s)
  −
! Computer A run-time<br />(in nanoseconds)
  −
  −
!运行时 br / (以纳秒为单位)
      
! Computer B run-time<br />(in [[nanosecond]]s)
 
! Computer B run-time<br />(in [[nanosecond]]s)
  −
! Computer B run-time<br />(in nanoseconds)
  −
  −
!计算机 b 运行时 br / (以纳秒为单位)
  −
  −
|-
      
|-
 
|-
  −
|-
  −
  −
| 16
  −
  −
| 16
      
| 16
 
| 16
  −
| 8
  −
  −
| 8
      
| 8
 
| 8
    
| 100,000  
 
| 100,000  
  −
| 100,000
  −
  −
| 100,000
  −
  −
|-
  −
  −
|-
      
|-
 
|-
    
| 63
 
| 63
  −
| 63
  −
  −
| 63
  −
  −
| 32
      
| 32  
 
| 32  
  −
| 32
  −
  −
| 150,000
  −
  −
| 150,000
      
| 150,000
 
| 150,000
    
|-
 
|-
  −
|-
  −
  −
|-
  −
  −
| 250
  −
  −
| 250
      
| 250
 
| 250
    
| 125  
 
| 125  
  −
| 125
  −
  −
| 125
  −
  −
| 200,000
  −
  −
| 200,000
      
| 200,000
 
| 200,000
  −
|-
  −
  −
|-
      
|-
 
|-
    
| 1,000
 
| 1,000
  −
| 1,000
  −
  −
| 1,000
  −
  −
| 500
  −
  −
| 500
      
| 500
 
| 500
  −
| 250,000
  −
  −
| 250,000
      
| 250,000
 
| 250,000
    
|-
 
|-
  −
|-
  −
  −
|-
  −
  −
| ...
  −
  −
| ...
  −
  −
| ...
  −
  −
| ...
  −
  −
| ...
      
| ...
 
| ...
第413行: 第226行:     
| ...
 
| ...
  −
| ...
  −
  −
|-
  −
  −
|-
      
|-
 
|-
    
| 1,000,000
 
| 1,000,000
  −
| 1,000,000
  −
  −
| 1,000,000
  −
  −
| 500,000
  −
  −
| 500,000
  −
  −
| 500,000
  −
  −
| 500,000
      
| 500,000
 
| 500,000
第441行: 第236行:     
|-
 
|-
  −
|-
  −
  −
|-
  −
  −
| 4,000,000
  −
  −
| 4,000,000
      
| 4,000,000
 
| 4,000,000
  −
| 2,000,000
  −
  −
| 2,000,000
      
| 2,000,000
 
| 2,000,000
    
| 550,000
 
| 550,000
  −
| 550,000
  −
  −
| 550,000
  −
  −
|-
  −
  −
|-
      
|-
 
|-
    
| 16,000,000
 
| 16,000,000
  −
| 16,000,000
  −
  −
| 16,000,000
  −
  −
| 8,000,000
  −
  −
| 8,000,000
      
| 8,000,000
 
| 8,000,000
  −
| 600,000
  −
  −
| 600,000
      
| 600,000
 
| 600,000
    
|-
 
|-
  −
|-
  −
  −
|-
  −
  −
| ...
  −
  −
| ...
  −
  −
| ...
  −
  −
| ...
  −
  −
| ...
  −
  −
| ...
      
| ...
 
| ...
第511行: 第258行:     
| ...
 
| ...
  −
|-
  −
  −
|-
      
|-
 
|-
    
| 63,072 &times; 10<sup>12</sup>
 
| 63,072 &times; 10<sup>12</sup>
  −
| 63,072 &times; 10<sup>12</sup>
  −
  −
63,072 & times; 10 sup 12 / sup
  −
  −
| 31,536 &times; 10<sup>12</sup> ns,<br />or 1 year
      
| 31,536 &times; 10<sup>12</sup> ns,<br />or 1 year
 
| 31,536 &times; 10<sup>12</sup> ns,<br />or 1 year
  −
31,536 & times; 10 sup 12 / sup ns,br / or 1 year
      
| 1,375,000 ns,<br />or 1.375 milliseconds
 
| 1,375,000 ns,<br />or 1.375 milliseconds
  −
| 1,375,000 ns,<br />or 1.375 milliseconds
  −
  −
| 1,375,000 ns,br / or 1.375 milliseconds
  −
  −
|}
  −
  −
|}
      
|}
 
|}
第552行: 第279行:       −
===Orders of growth===
+
===生长规律 Orders of growth===
    
{{main|Big O notation}}
 
{{main|Big O notation}}
第572行: 第299行:       −
===Empirical orders of growth===
+
===经验增长规律 Empirical orders of growth===
      第585行: 第312行:     
{| class="wikitable"
 
{| class="wikitable"
  −
{| class="wikitable"
  −
  −
{ | class“ wikitable”
  −
  −
|-_
  −
  −
|-_
      
|-_
 
|-_
    
! ''n'' (list size)
 
! ''n'' (list size)
  −
! n (list size)
  −
  −
!N (列表大小)
      
! Computer A run-time<br />(in [[nanosecond]]s)
 
! Computer A run-time<br />(in [[nanosecond]]s)
  −
! Computer A run-time<br />(in nanoseconds)
  −
  −
!运行时 br / (以纳秒为单位)
  −
  −
! Local order of growth<br />(n^_)
      
! Local order of growth<br />(n^_)
 
! Local order of growth<br />(n^_)
  −
!生长 br / (n ^)的局部序
      
! Computer B run-time<br />(in [[nanosecond]]s)
 
! Computer B run-time<br />(in [[nanosecond]]s)
  −
! Computer B run-time<br />(in nanoseconds)
  −
  −
!计算机 b 运行时 br / (以纳秒为单位)
  −
  −
! Local order of growth<br />(n^_)
      
! Local order of growth<br />(n^_)
 
! Local order of growth<br />(n^_)
  −
!生长 br / (n ^)的局部序
  −
  −
|-
  −
  −
|-
      
|-
 
|-
    
| 15
 
| 15
  −
| 15
  −
  −
| 15
  −
  −
| 7
  −
  −
| 7
      
| 7
 
| 7
    
|  
 
|  
  −
|
  −
  −
|
  −
  −
| 100,000
  −
  −
| 100,000
      
| 100,000
 
| 100,000
    
|  
 
|  
  −
|
  −
  −
|
  −
  −
|-
  −
  −
|-
      
|-
 
|-
    
| 65
 
| 65
  −
| 65
  −
  −
| 65
  −
  −
| 32
  −
  −
| 32
      
| 32
 
| 32
    
| 1.04
 
| 1.04
  −
| 1.04
  −
  −
| 1.04
  −
  −
| 150,000
  −
  −
| 150,000
      
| 150,000
 
| 150,000
    
| 0.28
 
| 0.28
  −
| 0.28
  −
  −
| 0.28
  −
  −
|-
  −
  −
|-
      
|-
 
|-
    
| 250
 
| 250
  −
| 250
  −
  −
| 250
  −
  −
| 125
  −
  −
| 125
      
| 125
 
| 125
    
| 1.01
 
| 1.01
  −
| 1.01
  −
  −
| 1.01
  −
  −
| 200,000
  −
  −
| 200,000
      
| 200,000
 
| 200,000
    
| 0.21
 
| 0.21
  −
| 0.21
  −
  −
| 0.21
  −
  −
|-
  −
  −
|-
      
|-
 
|-
    
| 1,000
 
| 1,000
  −
| 1,000
  −
  −
| 1,000
  −
  −
| 500
  −
  −
| 500
      
| 500
 
| 500
    
| 1.00
 
| 1.00
  −
| 1.00
  −
  −
| 1.00
  −
  −
| 250,000
  −
  −
| 250,000
      
| 250,000
 
| 250,000
  −
| 0.16
  −
  −
| 0.16
      
| 0.16
 
| 0.16
    
|-
 
|-
  −
|-
  −
  −
|-
  −
  −
| ...
  −
  −
| ...
  −
  −
| ...
  −
  −
| ...
      
| ...
 
| ...
第789行: 第380行:     
|  
 
|  
  −
|
  −
  −
|
  −
  −
| ...
  −
  −
| ...
      
| ...
 
| ...
    
|  
 
|  
  −
|
  −
  −
|
      
|-
 
|-
  −
|-
  −
  −
|-
  −
  −
| 1,000,000
  −
  −
| 1,000,000
      
| 1,000,000
 
| 1,000,000
    
| 500,000
 
| 500,000
  −
| 500,000
  −
  −
| 500,000
  −
  −
| 1.00
  −
  −
| 1.00
      
| 1.00
 
| 1.00
  −
| 500,000
  −
  −
| 500,000
      
| 500,000
 
| 500,000
    
| 0.10
 
| 0.10
  −
| 0.10
  −
  −
| 0.10
  −
  −
|-
  −
  −
|-
      
|-
 
|-
  −
| 4,000,000
  −
  −
| 4,000,000
      
| 4,000,000
 
| 4,000,000
  −
| 2,000,000
  −
  −
| 2,000,000
      
| 2,000,000
 
| 2,000,000
  −
| 1.00
  −
  −
| 1.00
      
| 1.00
 
| 1.00
    
| 550,000
 
| 550,000
  −
| 550,000
  −
  −
| 550,000
  −
  −
| 0.07
      
| 0.07
 
| 0.07
  −
| 0.07
  −
  −
|-
  −
  −
|-
      
|-
 
|-
  −
| 16,000,000
  −
  −
| 16,000,000
      
| 16,000,000
 
| 16,000,000
    
| 8,000,000
 
| 8,000,000
  −
| 8,000,000
  −
  −
| 8,000,000
  −
  −
| 1.00
  −
  −
| 1.00
      
| 1.00
 
| 1.00
    
| 600,000
 
| 600,000
  −
| 600,000
  −
  −
| 600,000
  −
  −
| 0.06
  −
  −
| 0.06
      
| 0.06
 
| 0.06
    
|-
 
|-
  −
|-
  −
  −
|-
  −
  −
| ...
  −
  −
| ...
  −
  −
| ...
  −
  −
| ...
      
| ...
 
| ...
第933行: 第428行:     
|  
 
|  
  −
|
  −
  −
|
  −
  −
| ...
      
| ...
 
| ...
  −
| ...
  −
  −
|
  −
  −
|
      
|
 
|
    
|}
 
|}
  −
|}
  −
  −
|}
  −
  −
      
It is clearly seen that the first algorithm exhibits a linear order of growth indeed following the power rule. The empirical values for the second one are diminishing rapidly, suggesting it follows another rule of growth and in any case has much lower local orders of growth (and improving further still), empirically, than the first one.
 
It is clearly seen that the first algorithm exhibits a linear order of growth indeed following the power rule. The empirical values for the second one are diminishing rapidly, suggesting it follows another rule of growth and in any case has much lower local orders of growth (and improving further still), empirically, than the first one.
第966行: 第443行:       −
=== Evaluating run-time complexity ===
+
=== 运行时复杂性度量 Evaluating run-time complexity ===
    
The run-time complexity for the worst-case scenario of a given algorithm can sometimes be evaluated by examining the structure of the algorithm and making some simplifying assumptions.  Consider the following [[pseudocode]]:
 
The run-time complexity for the worst-case scenario of a given algorithm can sometimes be evaluated by examining the structure of the algorithm and making some simplifying assumptions.  Consider the following [[pseudocode]]:
第977行: 第454行:     
  1    ''get a positive integer n from input''
 
  1    ''get a positive integer n from input''
  −
1    get a positive integer n from input
  −
  −
1从输入得到一个正整数 n
      
  2    '''if''' n > 10
 
  2    '''if''' n > 10
  −
2    if n > 10
  −
  −
2 if n 10
      
  3        '''print''' "This might take a while..."
 
  3        '''print''' "This might take a while..."
  −
3        print "This might take a while..."
  −
  −
“这可能需要一段时间... ... ”
      
  4    '''for''' i = 1 '''to''' n
 
  4    '''for''' i = 1 '''to''' n
  −
4    for i = 1 to n
  −
  −
4表示 i 1到 n
      
  5        '''for''' j = 1 '''to''' i
 
  5        '''for''' j = 1 '''to''' i
  −
5        for j = 1 to i
  −
  −
5表示 j1表示 i
      
  6            '''print''' i * j
 
  6            '''print''' i * j
  −
6            print i * j
  −
  −
6 print i * j
      
  7    '''print''' "Done!"
 
  7    '''print''' "Done!"
  −
7    print "Done!"
  −
  −
打印7页“完成! ”
        第1,037行: 第486行:     
:<math>T_1 + T_2 + T_3 + T_7. \,</math>
 
:<math>T_1 + T_2 + T_3 + T_7. \,</math>
  −
<math>T_1 + T_2 + T_3 + T_7. \,</math>
  −
  −
数学 t1 + t2 + t3 + t7。数学
        第1,067行: 第512行:     
:<math>T_6 + 2T_6 + 3T_6 + \cdots + (n-1) T_6 + n T_6</math>
 
:<math>T_6 + 2T_6 + 3T_6 + \cdots + (n-1) T_6 + n T_6</math>
  −
<math>T_6 + 2T_6 + 3T_6 + \cdots + (n-1) T_6 + n T_6</math>
  −
  −
数学 t6 + 2t6 + 3t6 +  cdots + (n-1) t6 + n t6 / math
        第1,076行: 第517行:  
which can be [[factorization|factored]]<ref>It can be proven by [[Mathematical induction|induction]] that <math>1 + 2 + 3 + \cdots + (n-1) + n = \frac{n(n+1)}{2}</math></ref> as
 
which can be [[factorization|factored]]<ref>It can be proven by [[Mathematical induction|induction]] that <math>1 + 2 + 3 + \cdots + (n-1) + n = \frac{n(n+1)}{2}</math></ref> as
   −
which can be factored as
+
which can be factored as:
   −
这可以作为一个因素
+
这可以作为一个因素:
          
:<math>T_6 \left[ 1 + 2 + 3 + \cdots + (n-1) + n \right] = T_6 \left[ \frac{1}{2} (n^2 + n) \right] </math>
 
:<math>T_6 \left[ 1 + 2 + 3 + \cdots + (n-1) + n \right] = T_6 \left[ \frac{1}{2} (n^2 + n) \right] </math>
  −
<math>T_6 \left[ 1 + 2 + 3 + \cdots + (n-1) + n \right] = T_6 \left[ \frac{1}{2} (n^2 + n) \right] </math>
  −
  −
数学 t6左[1 + 2 + 3 +  cdots + (n-1) + n 右] t6左[ frac {1}{2}(n ^ 2 + n)右] / 数学
        第1,100行: 第537行:  
:<math>\begin{align}
 
:<math>\begin{align}
   −
<math>\begin{align}
  −
  −
数学 begin { align }
  −
  −
& 2T_5 + 3T_5 + 4T_5 + \cdots + (n-1) T_5 + n T_5 + (n + 1) T_5\\
      
& 2T_5 + 3T_5 + 4T_5 + \cdots + (n-1) T_5 + n T_5 + (n + 1) T_5\\
 
& 2T_5 + 3T_5 + 4T_5 + \cdots + (n-1) T_5 + n T_5 + (n + 1) T_5\\
   −
2t5 + 3t5 + 4t5 +  cdots + (n-1) t5 + n t5 + (n + 1) t5
      
=\ &T_5 + 2T_5 + 3T_5 + 4T_5 + \cdots + (n-1)T_5 + nT_5 + (n+1)T_5 - T_5
 
=\ &T_5 + 2T_5 + 3T_5 + 4T_5 + \cdots + (n-1)T_5 + nT_5 + (n+1)T_5 - T_5
   −
=\ &T_5 + 2T_5 + 3T_5 + 4T_5 + \cdots + (n-1)T_5 + nT_5 + (n+1)T_5 - T_5
  −
  −
5 + 2t5 + 3t5 + 4t5 +  cdots + (n-1) t5 + nT 5 + (n + 1) t5-t5
      
\end{align}</math>
 
\end{align}</math>
  −
\end{align}</math>
  −
  −
End { align } / math
        第1,134行: 第558行:  
:<math>\begin{align}
 
:<math>\begin{align}
   −
<math>\begin{align}
  −
  −
数学 begin { align }
      
& T_5 \left[ 1+2+3+\cdots + (n-1) + n + (n + 1) \right] - T_5 \\
 
& T_5 \left[ 1+2+3+\cdots + (n-1) + n + (n + 1) \right] - T_5 \\
  −
& T_5 \left[ 1+2+3+\cdots + (n-1) + n + (n + 1) \right] - T_5 \\
  −
  −
& t5左[1 + 2 + 3 +  cdots + (n-1) + n + (n + 1)右]-t5
  −
  −
=& \left[ \frac{1}{2} (n^2 + n) \right]  T_5 +  (n + 1)T_5 - T_5 \\
      
=& \left[ \frac{1}{2} (n^2 + n) \right]  T_5 +  (n + 1)T_5 - T_5 \\
 
=& \left[ \frac{1}{2} (n^2 + n) \right]  T_5 +  (n + 1)T_5 - T_5 \\
  −
左[ frac {1}{2}(n ^ 2 + n)右] t5 + (n + 1) t5-t5
      
=& T_5 \left[ \frac{1}{2} (n^2 + n) \right] + n T_5 \\
 
=& T_5 \left[ \frac{1}{2} (n^2 + n) \right] + n T_5 \\
  −
=& T_5 \left[ \frac{1}{2} (n^2 + n) \right] + n T_5 \\
  −
  −
& t 5左[ frac {1}{2}(n ^ 2 + n)右] + n t 5
  −
  −
=& \left[ \frac{1}{2} (n^2 + 3n) \right] T_5
      
=& \left[ \frac{1}{2} (n^2 + 3n) \right] T_5
 
=& \left[ \frac{1}{2} (n^2 + 3n) \right] T_5
  −
左[ frac {1}{2}(n ^ 2 + 3n)右] t 5
      
\end{align}</math>
 
\end{align}</math>
  −
\end{align}</math>
  −
  −
End { align } / math
        第1,178行: 第579行:       −
:<math>f(n) = T_1 + T_2 + T_3 + T_7 + (n + 1)T_4 + \left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2+3n) \right] T_5 </math>
+
:<math>f(n) = T_1 + T_2 + T_3 + T_7 + (n + 1)T_4 + \left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2+3n) \right] T_5 </math>
 
  −
<math>f(n) = T_1 + T_2 + T_3 + T_7 + (n + 1)T_4 + \left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2+3n) \right] T_5 </math>
  −
 
  −
数学 f (n) t1 + t2 + t3 + t7 + (n + 1) t4 + 左[ frac {1}(n ^ 2 + n)右] t6 + 左[ frac {1}(n ^ 2 + 3 n)右] t5 / math
        第1,194行: 第591行:       −
:<math>f(n) = \left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2 + 3n) \right] T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7
+
:<math>f(n) = \left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2 + 3n) \right] T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7、
 
  −
<math>f(n) = \left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2 + 3n) \right] T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7
  −
 
  −
数学 f (n)左[ frac {1}{2}(n ^ 2 + n)右] t6 + 左[ frac {1}(n ^ 2 + 3n)右] t5 + (n + 1) t4 + t1 + t2 + t3 + t7
      
</math>
 
</math>
  −
</math>
  −
  −
数学
        第1,216行: 第605行:  
{{quote|Prove that <math>\left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2 + 3n) \right] T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7 \le cn^2,\ n \ge n_0</math>
 
{{quote|Prove that <math>\left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2 + 3n) \right] T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7 \le cn^2,\ n \ge n_0</math>
   −
{{quote|Prove that <math>\left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2 + 3n) \right] T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7 \le cn^2,\ n \ge n_0</math>
+
<br /><br />  
 
  −
{引号 | 证明数学左[ frac {1}{2}(n ^ 2 + n)右] t6 + 左[ frac {1}(n ^ 2 + 3n)右] t5 + (n + 1) t4 + t1 + t2 + t3 + t7 cn ^ 2, n ge n0 / math
  −
 
  −
<br /><br />
  −
 
  −
<br /><br />
  −
 
  −
Br / br /
  −
 
  −
<math>\begin{align}
      
<math>\begin{align}
 
<math>\begin{align}
  −
数学 begin { align }
      
&\left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2 + 3n) \right] T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7\\
 
&\left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2 + 3n) \right] T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7\\
  −
&\left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2 + 3n) \right] T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7\\
  −
  −
左[ frac {1}{2}(n ^ 2 + n)右] t6 + 左[ frac {1}{2}(n ^ 2 + 3n)右] t5 + (n + 1) t4 + t1 + t2 + t3 + t7
      
\le &( n^2 + n )T_6 + ( n^2 + 3n )T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7 \ (\text{for } n \ge 0 )
 
\le &( n^2 + n )T_6 + ( n^2 + 3n )T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7 \ (\text{for } n \ge 0 )
  −
\le &( n^2 + n )T_6 + ( n^2 + 3n )T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7 \ (\text{for } n \ge 0 )
  −
  −
(n ^ 2 + n) t6 + (n ^ 2 + 3n) t5 + (n + 1) t4 + t1 + t2 + t3 + t7(for } n  ge0)
      
\end{align}</math>
 
\end{align}</math>
  −
\end{align}</math>
  −
  −
End { align } / math
  −
  −
<br /><br />
      
<br /><br />
 
<br /><br />
   −
Br / br /
      
Let ''k'' be a constant greater than or equal to [''T''<sub>1</sub>..''T''<sub>7</sub>]
 
Let ''k'' be a constant greater than or equal to [''T''<sub>1</sub>..''T''<sub>7</sub>]
第1,262行: 第624行:  
设 k 为大于或等于[ t 小于1 / 小于. . t 小于7 / 小于]的常数
 
设 k 为大于或等于[ t 小于1 / 小于. . t 小于7 / 小于]的常数
   −
<br /><br />
+
<br /><br />  
 
  −
<br /><br />
  −
 
  −
Br / br /
  −
 
  −
<math>\begin{align}
      
<math>\begin{align}
 
<math>\begin{align}
  −
数学 begin { align }
      
&T_6( n^2 + n ) + T_5( n^2 + 3n ) + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7 \le k( n^2 + n ) + k( n^2 + 3n ) + kn + 5k\\
 
&T_6( n^2 + n ) + T_5( n^2 + 3n ) + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7 \le k( n^2 + n ) + k( n^2 + 3n ) + kn + 5k\\
  −
&T_6( n^2 + n ) + T_5( n^2 + 3n ) + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7 \le k( n^2 + n ) + k( n^2 + 3n ) + kn + 5k\\
  −
  −
& t6(n ^ 2 + n) + t5(n ^ 2 + 3n) + (n + 1) t4 + t1 + t2 + t3 + t7 le k (n ^ 2 + n) + k (n ^ 2 + 3n) + kn + 5k
  −
  −
= &2kn^2 + 5kn + 5k \le 2kn^2 + 5kn^2 + 5kn^2 \ (\text{for } n \ge 1) = 12kn^2
  −
  −
= &2kn^2 + 5kn + 5k \le 2kn^2 + 5kn^2 + 5kn^2 \ (\text{for } n \ge 1) = 12kn^2
      
= &2kn^2 + 5kn + 5k \le 2kn^2 + 5kn^2 + 5kn^2 \ (\text{for } n \ge 1) = 12kn^2
 
= &2kn^2 + 5kn + 5k \le 2kn^2 + 5kn^2 + 5kn^2 \ (\text{for } n \ge 1) = 12kn^2
第1,288行: 第634行:  
\end{align}</math>
 
\end{align}</math>
   −
\end{align}</math>
+
<br /><br />  
 
  −
End { align } / math
  −
 
  −
<br /><br />
  −
 
  −
<br /><br />
  −
 
  −
Br / br /
      
Therefore <math>\left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2 + 3n) \right] T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7 \le cn^2, n \ge n_0 \text{ for } c = 12k, n_0 = 1</math>
 
Therefore <math>\left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2 + 3n) \right] T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7 \le cn^2, n \ge n_0 \text{ for } c = 12k, n_0 = 1</math>
  −
Therefore <math>\left[ \frac{1}{2} (n^2 + n) \right] T_6 + \left[ \frac{1}{2} (n^2 + 3n) \right] T_5 + (n + 1)T_4 + T_1 + T_2 + T_3 + T_7 \le cn^2, n \ge n_0 \text{ for } c = 12k, n_0 = 1</math>
  −
  −
因此,数学左[ frac {1}{2}(n ^ 2 + n)右] t6 + 左[ frac {1}(n ^ 2 + 3n)右] t5 + (n + 1) t4 + t1 + t2 + t3 + t7 le ^ cn 2,n  ge n 0 text { for } c12k,n 01 / math
  −
  −
}}
  −
  −
}}
      
}}
 
}}
第1,322行: 第652行:       −
===Growth rate analysis of other resources===
+
===其他资源增长率分析 Growth rate analysis of other resources===
    
The methodology of run-time analysis can also be utilized for predicting other growth rates, such as consumption of [[DSPACE|memory space]].  As an example, consider the following pseudocode which manages and reallocates memory usage by a program based on the size of a [[computer file|file]] which that program manages:
 
The methodology of run-time analysis can also be utilized for predicting other growth rates, such as consumption of [[DSPACE|memory space]].  As an example, consider the following pseudocode which manages and reallocates memory usage by a program based on the size of a [[computer file|file]] which that program manages:
第1,333行: 第663行:     
  '''while''' ''file is still open:''
 
  '''while''' ''file is still open:''
  −
while file is still open:
  −
  −
在文件还开着的时候:
      
     '''let''' n = ''size of file''
 
     '''let''' n = ''size of file''
  −
    let n = size of file
  −
  −
文件大小 n
      
     '''for''' ''every 100,000 [[kilobyte]]s of increase in file size''
 
     '''for''' ''every 100,000 [[kilobyte]]s of increase in file size''
  −
    for every 100,000 kilobytes of increase in file size
  −
  −
文件大小每增加10万千字节
      
         ''double the amount of memory reserved''
 
         ''double the amount of memory reserved''
  −
        double the amount of memory reserved
  −
  −
保留的内存量翻倍
        第1,363行: 第677行:     
在这个例子中,随着文件大小 n 的增加,内存消耗的速度将达到指数增长,即 o (2 sup n / sup)。对于内存资源的消耗,这是一个极其快速且最有可能无法控制的增长率。
 
在这个例子中,随着文件大小 n 的增加,内存消耗的速度将达到指数增长,即 o (2 sup n / sup)。对于内存资源的消耗,这是一个极其快速且最有可能无法控制的增长率。
  −
      
==Relevance==
 
==Relevance==
463

个编辑

导航菜单