mirror of
https://github.com/krahets/hello-algo.git
synced 2025-07-24 18:55:36 +08:00
deploy
This commit is contained in:
@ -2677,7 +2677,7 @@ O(1) < O(\log n) < O(n) < O(n \log n) < O(n^2) < O(2^n) < O(n!
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a id="__codelineno-42-1" name="__codelineno-42-1" href="#__codelineno-42-1"></a><span class="k">def</span> <span class="nf">constant</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-42-2" name="__codelineno-42-2" href="#__codelineno-42-2"></a><span class="w"> </span><span class="sd">""" 常数阶 """</span>
|
||||
<a id="__codelineno-42-2" name="__codelineno-42-2" href="#__codelineno-42-2"></a><span class="w"> </span><span class="sd">"""常数阶"""</span>
|
||||
<a id="__codelineno-42-3" name="__codelineno-42-3" href="#__codelineno-42-3"></a> <span class="n">count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<a id="__codelineno-42-4" name="__codelineno-42-4" href="#__codelineno-42-4"></a> <span class="n">size</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">100000</span>
|
||||
<a id="__codelineno-42-5" name="__codelineno-42-5" href="#__codelineno-42-5"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">size</span><span class="p">):</span>
|
||||
@ -2787,7 +2787,7 @@ O(1) < O(\log n) < O(n) < O(n \log n) < O(n^2) < O(2^n) < O(n!
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a id="__codelineno-52-1" name="__codelineno-52-1" href="#__codelineno-52-1"></a><span class="k">def</span> <span class="nf">linear</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-52-2" name="__codelineno-52-2" href="#__codelineno-52-2"></a><span class="w"> </span><span class="sd">""" 线性阶 """</span>
|
||||
<a id="__codelineno-52-2" name="__codelineno-52-2" href="#__codelineno-52-2"></a><span class="w"> </span><span class="sd">"""线性阶"""</span>
|
||||
<a id="__codelineno-52-3" name="__codelineno-52-3" href="#__codelineno-52-3"></a> <span class="n">count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<a id="__codelineno-52-4" name="__codelineno-52-4" href="#__codelineno-52-4"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
|
||||
<a id="__codelineno-52-5" name="__codelineno-52-5" href="#__codelineno-52-5"></a> <span class="n">count</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
@ -2896,7 +2896,7 @@ O(1) < O(\log n) < O(n) < O(n \log n) < O(n^2) < O(2^n) < O(n!
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a id="__codelineno-62-1" name="__codelineno-62-1" href="#__codelineno-62-1"></a><span class="k">def</span> <span class="nf">array_traversal</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">])</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-62-2" name="__codelineno-62-2" href="#__codelineno-62-2"></a><span class="w"> </span><span class="sd">""" 线性阶(遍历数组)"""</span>
|
||||
<a id="__codelineno-62-2" name="__codelineno-62-2" href="#__codelineno-62-2"></a><span class="w"> </span><span class="sd">"""线性阶(遍历数组)"""</span>
|
||||
<a id="__codelineno-62-3" name="__codelineno-62-3" href="#__codelineno-62-3"></a> <span class="n">count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<a id="__codelineno-62-4" name="__codelineno-62-4" href="#__codelineno-62-4"></a> <span class="c1"># 循环次数与数组长度成正比</span>
|
||||
<a id="__codelineno-62-5" name="__codelineno-62-5" href="#__codelineno-62-5"></a> <span class="k">for</span> <span class="n">num</span> <span class="ow">in</span> <span class="n">nums</span><span class="p">:</span>
|
||||
@ -3018,7 +3018,7 @@ O(1) < O(\log n) < O(n) < O(n \log n) < O(n^2) < O(2^n) < O(n!
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a id="__codelineno-72-1" name="__codelineno-72-1" href="#__codelineno-72-1"></a><span class="k">def</span> <span class="nf">quadratic</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-72-2" name="__codelineno-72-2" href="#__codelineno-72-2"></a><span class="w"> </span><span class="sd">""" 平方阶 """</span>
|
||||
<a id="__codelineno-72-2" name="__codelineno-72-2" href="#__codelineno-72-2"></a><span class="w"> </span><span class="sd">"""平方阶"""</span>
|
||||
<a id="__codelineno-72-3" name="__codelineno-72-3" href="#__codelineno-72-3"></a> <span class="n">count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<a id="__codelineno-72-4" name="__codelineno-72-4" href="#__codelineno-72-4"></a> <span class="c1"># 循环次数与数组长度成平方关系</span>
|
||||
<a id="__codelineno-72-5" name="__codelineno-72-5" href="#__codelineno-72-5"></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
|
||||
@ -3175,7 +3175,7 @@ O((n - 1) \frac{n}{2}) = O(n^2)
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a id="__codelineno-82-1" name="__codelineno-82-1" href="#__codelineno-82-1"></a><span class="k">def</span> <span class="nf">bubble_sort</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">])</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-82-2" name="__codelineno-82-2" href="#__codelineno-82-2"></a><span class="w"> </span><span class="sd">""" 平方阶(冒泡排序)"""</span>
|
||||
<a id="__codelineno-82-2" name="__codelineno-82-2" href="#__codelineno-82-2"></a><span class="w"> </span><span class="sd">"""平方阶(冒泡排序)"""</span>
|
||||
<a id="__codelineno-82-3" name="__codelineno-82-3" href="#__codelineno-82-3"></a> <span class="n">count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span> <span class="c1"># 计数器</span>
|
||||
<a id="__codelineno-82-4" name="__codelineno-82-4" href="#__codelineno-82-4"></a> <span class="c1"># 外循环:待排序元素数量为 n-1, n-2, ..., 1</span>
|
||||
<a id="__codelineno-82-5" name="__codelineno-82-5" href="#__codelineno-82-5"></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">nums</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">):</span>
|
||||
@ -3370,7 +3370,7 @@ O((n - 1) \frac{n}{2}) = O(n^2)
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a id="__codelineno-92-1" name="__codelineno-92-1" href="#__codelineno-92-1"></a><span class="k">def</span> <span class="nf">exponential</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-92-2" name="__codelineno-92-2" href="#__codelineno-92-2"></a><span class="w"> </span><span class="sd">""" 指数阶(循环实现)"""</span>
|
||||
<a id="__codelineno-92-2" name="__codelineno-92-2" href="#__codelineno-92-2"></a><span class="w"> </span><span class="sd">"""指数阶(循环实现)"""</span>
|
||||
<a id="__codelineno-92-3" name="__codelineno-92-3" href="#__codelineno-92-3"></a> <span class="n">count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<a id="__codelineno-92-4" name="__codelineno-92-4" href="#__codelineno-92-4"></a> <span class="n">base</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">1</span>
|
||||
<a id="__codelineno-92-5" name="__codelineno-92-5" href="#__codelineno-92-5"></a> <span class="c1"># cell 每轮一分为二,形成数列 1, 2, 4, 8, ..., 2^(n-1)</span>
|
||||
@ -3517,9 +3517,10 @@ O((n - 1) \frac{n}{2}) = O(n^2)
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a id="__codelineno-102-1" name="__codelineno-102-1" href="#__codelineno-102-1"></a><span class="k">def</span> <span class="nf">exp_recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-102-2" name="__codelineno-102-2" href="#__codelineno-102-2"></a><span class="w"> </span><span class="sd">""" 指数阶(递归实现)"""</span>
|
||||
<a id="__codelineno-102-3" name="__codelineno-102-3" href="#__codelineno-102-3"></a> <span class="k">if</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> <span class="k">return</span> <span class="mi">1</span>
|
||||
<a id="__codelineno-102-4" name="__codelineno-102-4" href="#__codelineno-102-4"></a> <span class="k">return</span> <span class="n">exp_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="n">exp_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
|
||||
<a id="__codelineno-102-2" name="__codelineno-102-2" href="#__codelineno-102-2"></a><span class="w"> </span><span class="sd">"""指数阶(递归实现)"""</span>
|
||||
<a id="__codelineno-102-3" name="__codelineno-102-3" href="#__codelineno-102-3"></a> <span class="k">if</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
|
||||
<a id="__codelineno-102-4" name="__codelineno-102-4" href="#__codelineno-102-4"></a> <span class="k">return</span> <span class="mi">1</span>
|
||||
<a id="__codelineno-102-5" name="__codelineno-102-5" href="#__codelineno-102-5"></a> <span class="k">return</span> <span class="n">exp_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="n">exp_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
@ -3613,7 +3614,7 @@ O((n - 1) \frac{n}{2}) = O(n^2)
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a id="__codelineno-112-1" name="__codelineno-112-1" href="#__codelineno-112-1"></a><span class="k">def</span> <span class="nf">logarithmic</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">float</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-112-2" name="__codelineno-112-2" href="#__codelineno-112-2"></a><span class="w"> </span><span class="sd">""" 对数阶(循环实现)"""</span>
|
||||
<a id="__codelineno-112-2" name="__codelineno-112-2" href="#__codelineno-112-2"></a><span class="w"> </span><span class="sd">"""对数阶(循环实现)"""</span>
|
||||
<a id="__codelineno-112-3" name="__codelineno-112-3" href="#__codelineno-112-3"></a> <span class="n">count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<a id="__codelineno-112-4" name="__codelineno-112-4" href="#__codelineno-112-4"></a> <span class="k">while</span> <span class="n">n</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span>
|
||||
<a id="__codelineno-112-5" name="__codelineno-112-5" href="#__codelineno-112-5"></a> <span class="n">n</span> <span class="o">=</span> <span class="n">n</span> <span class="o">/</span> <span class="mi">2</span>
|
||||
@ -3728,9 +3729,10 @@ O((n - 1) \frac{n}{2}) = O(n^2)
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a id="__codelineno-122-1" name="__codelineno-122-1" href="#__codelineno-122-1"></a><span class="k">def</span> <span class="nf">log_recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">float</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-122-2" name="__codelineno-122-2" href="#__codelineno-122-2"></a><span class="w"> </span><span class="sd">""" 对数阶(递归实现)"""</span>
|
||||
<a id="__codelineno-122-3" name="__codelineno-122-3" href="#__codelineno-122-3"></a> <span class="k">if</span> <span class="n">n</span> <span class="o"><=</span> <span class="mi">1</span><span class="p">:</span> <span class="k">return</span> <span class="mi">0</span>
|
||||
<a id="__codelineno-122-4" name="__codelineno-122-4" href="#__codelineno-122-4"></a> <span class="k">return</span> <span class="n">log_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
|
||||
<a id="__codelineno-122-2" name="__codelineno-122-2" href="#__codelineno-122-2"></a><span class="w"> </span><span class="sd">"""对数阶(递归实现)"""</span>
|
||||
<a id="__codelineno-122-3" name="__codelineno-122-3" href="#__codelineno-122-3"></a> <span class="k">if</span> <span class="n">n</span> <span class="o"><=</span> <span class="mi">1</span><span class="p">:</span>
|
||||
<a id="__codelineno-122-4" name="__codelineno-122-4" href="#__codelineno-122-4"></a> <span class="k">return</span> <span class="mi">0</span>
|
||||
<a id="__codelineno-122-5" name="__codelineno-122-5" href="#__codelineno-122-5"></a> <span class="k">return</span> <span class="n">log_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
@ -3825,10 +3827,10 @@ O((n - 1) \frac{n}{2}) = O(n^2)
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a id="__codelineno-132-1" name="__codelineno-132-1" href="#__codelineno-132-1"></a><span class="k">def</span> <span class="nf">linear_log_recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">float</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-132-2" name="__codelineno-132-2" href="#__codelineno-132-2"></a><span class="w"> </span><span class="sd">""" 线性对数阶 """</span>
|
||||
<a id="__codelineno-132-3" name="__codelineno-132-3" href="#__codelineno-132-3"></a> <span class="k">if</span> <span class="n">n</span> <span class="o"><=</span> <span class="mi">1</span><span class="p">:</span> <span class="k">return</span> <span class="mi">1</span>
|
||||
<a id="__codelineno-132-4" name="__codelineno-132-4" href="#__codelineno-132-4"></a> <span class="n">count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> \
|
||||
<a id="__codelineno-132-5" name="__codelineno-132-5" href="#__codelineno-132-5"></a> <span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span>
|
||||
<a id="__codelineno-132-2" name="__codelineno-132-2" href="#__codelineno-132-2"></a><span class="w"> </span><span class="sd">"""线性对数阶"""</span>
|
||||
<a id="__codelineno-132-3" name="__codelineno-132-3" href="#__codelineno-132-3"></a> <span class="k">if</span> <span class="n">n</span> <span class="o"><=</span> <span class="mi">1</span><span class="p">:</span>
|
||||
<a id="__codelineno-132-4" name="__codelineno-132-4" href="#__codelineno-132-4"></a> <span class="k">return</span> <span class="mi">1</span>
|
||||
<a id="__codelineno-132-5" name="__codelineno-132-5" href="#__codelineno-132-5"></a> <span class="n">count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span>
|
||||
<a id="__codelineno-132-6" name="__codelineno-132-6" href="#__codelineno-132-6"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
|
||||
<a id="__codelineno-132-7" name="__codelineno-132-7" href="#__codelineno-132-7"></a> <span class="n">count</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
<a id="__codelineno-132-8" name="__codelineno-132-8" href="#__codelineno-132-8"></a> <span class="k">return</span> <span class="n">count</span>
|
||||
@ -3961,13 +3963,14 @@ n! = n \times (n - 1) \times (n - 2) \times \cdots \times 2 \times 1
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a id="__codelineno-142-1" name="__codelineno-142-1" href="#__codelineno-142-1"></a><span class="k">def</span> <span class="nf">factorial_recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-142-2" name="__codelineno-142-2" href="#__codelineno-142-2"></a><span class="w"> </span><span class="sd">""" 阶乘阶(递归实现)"""</span>
|
||||
<a id="__codelineno-142-3" name="__codelineno-142-3" href="#__codelineno-142-3"></a> <span class="k">if</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> <span class="k">return</span> <span class="mi">1</span>
|
||||
<a id="__codelineno-142-4" name="__codelineno-142-4" href="#__codelineno-142-4"></a> <span class="n">count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<a id="__codelineno-142-5" name="__codelineno-142-5" href="#__codelineno-142-5"></a> <span class="c1"># 从 1 个分裂出 n 个</span>
|
||||
<a id="__codelineno-142-6" name="__codelineno-142-6" href="#__codelineno-142-6"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
|
||||
<a id="__codelineno-142-7" name="__codelineno-142-7" href="#__codelineno-142-7"></a> <span class="n">count</span> <span class="o">+=</span> <span class="n">factorial_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
|
||||
<a id="__codelineno-142-8" name="__codelineno-142-8" href="#__codelineno-142-8"></a> <span class="k">return</span> <span class="n">count</span>
|
||||
<a id="__codelineno-142-2" name="__codelineno-142-2" href="#__codelineno-142-2"></a><span class="w"> </span><span class="sd">"""阶乘阶(递归实现)"""</span>
|
||||
<a id="__codelineno-142-3" name="__codelineno-142-3" href="#__codelineno-142-3"></a> <span class="k">if</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
|
||||
<a id="__codelineno-142-4" name="__codelineno-142-4" href="#__codelineno-142-4"></a> <span class="k">return</span> <span class="mi">1</span>
|
||||
<a id="__codelineno-142-5" name="__codelineno-142-5" href="#__codelineno-142-5"></a> <span class="n">count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<a id="__codelineno-142-6" name="__codelineno-142-6" href="#__codelineno-142-6"></a> <span class="c1"># 从 1 个分裂出 n 个</span>
|
||||
<a id="__codelineno-142-7" name="__codelineno-142-7" href="#__codelineno-142-7"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
|
||||
<a id="__codelineno-142-8" name="__codelineno-142-8" href="#__codelineno-142-8"></a> <span class="n">count</span> <span class="o">+=</span> <span class="n">factorial_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
|
||||
<a id="__codelineno-142-9" name="__codelineno-142-9" href="#__codelineno-142-9"></a> <span class="k">return</span> <span class="n">count</span>
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
@ -4132,7 +4135,7 @@ n! = n \times (n - 1) \times (n - 2) \times \cdots \times 2 \times 1
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">worst_best_time_complexity.py</span><pre><span></span><code><a id="__codelineno-152-1" name="__codelineno-152-1" href="#__codelineno-152-1"></a><span class="k">def</span> <span class="nf">random_numbers</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">]:</span>
|
||||
<a id="__codelineno-152-2" name="__codelineno-152-2" href="#__codelineno-152-2"></a><span class="w"> </span><span class="sd">""" 生成一个数组,元素为: 1, 2, ..., n ,顺序被打乱 """</span>
|
||||
<a id="__codelineno-152-2" name="__codelineno-152-2" href="#__codelineno-152-2"></a><span class="w"> </span><span class="sd">"""生成一个数组,元素为: 1, 2, ..., n ,顺序被打乱"""</span>
|
||||
<a id="__codelineno-152-3" name="__codelineno-152-3" href="#__codelineno-152-3"></a> <span class="c1"># 生成数组 nums =: 1, 2, 3, ..., n</span>
|
||||
<a id="__codelineno-152-4" name="__codelineno-152-4" href="#__codelineno-152-4"></a> <span class="n">nums</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">n</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)]</span>
|
||||
<a id="__codelineno-152-5" name="__codelineno-152-5" href="#__codelineno-152-5"></a> <span class="c1"># 随机打乱数组元素</span>
|
||||
@ -4140,7 +4143,7 @@ n! = n \times (n - 1) \times (n - 2) \times \cdots \times 2 \times 1
|
||||
<a id="__codelineno-152-7" name="__codelineno-152-7" href="#__codelineno-152-7"></a> <span class="k">return</span> <span class="n">nums</span>
|
||||
<a id="__codelineno-152-8" name="__codelineno-152-8" href="#__codelineno-152-8"></a>
|
||||
<a id="__codelineno-152-9" name="__codelineno-152-9" href="#__codelineno-152-9"></a><span class="k">def</span> <span class="nf">find_one</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">])</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-152-10" name="__codelineno-152-10" href="#__codelineno-152-10"></a><span class="w"> </span><span class="sd">""" 查找数组 nums 中数字 1 所在索引 """</span>
|
||||
<a id="__codelineno-152-10" name="__codelineno-152-10" href="#__codelineno-152-10"></a><span class="w"> </span><span class="sd">"""查找数组 nums 中数字 1 所在索引"""</span>
|
||||
<a id="__codelineno-152-11" name="__codelineno-152-11" href="#__codelineno-152-11"></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">nums</span><span class="p">)):</span>
|
||||
<a id="__codelineno-152-12" name="__codelineno-152-12" href="#__codelineno-152-12"></a> <span class="c1"># 当元素 1 在数组头部时,达到最佳时间复杂度 O(1)</span>
|
||||
<a id="__codelineno-152-13" name="__codelineno-152-13" href="#__codelineno-152-13"></a> <span class="c1"># 当元素 1 在数组尾部时,达到最差时间复杂度 O(n)</span>
|
||||
|
Reference in New Issue
Block a user