This commit is contained in:
krahets
2023-05-24 00:32:47 +08:00
parent 9a0252f484
commit c6937e63b7
80 changed files with 4101 additions and 905 deletions

View File

@ -25,7 +25,7 @@
<title>11.9.   小结 - Hello 算法</title>
<title>11.10.   小结 - Hello 算法</title>
@ -79,7 +79,7 @@
<div data-md-component="skip">
<a href="#119" class="md-skip">
<a href="#1110" class="md-skip">
跳转至
</a>
@ -113,7 +113,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
11.9. &nbsp; 小结
11.10. &nbsp; 小结
</span>
</div>
@ -1409,6 +1409,8 @@
@ -1445,9 +1447,23 @@
<li class="md-nav__item">
<a href="../selection_sort/" class="md-nav__link">
11.2. &nbsp; 选择排序
</a>
</li>
<li class="md-nav__item">
<a href="../bubble_sort/" class="md-nav__link">
11.2. &nbsp; 冒泡排序
11.3. &nbsp; 冒泡排序
</a>
</li>
@ -1461,7 +1477,7 @@
<li class="md-nav__item">
<a href="../insertion_sort/" class="md-nav__link">
11.3. &nbsp; 插入排序
11.4. &nbsp; 插入排序
</a>
</li>
@ -1475,7 +1491,7 @@
<li class="md-nav__item">
<a href="../quick_sort/" class="md-nav__link">
11.4. &nbsp; 快速排序
11.5. &nbsp; 快速排序
</a>
</li>
@ -1489,7 +1505,7 @@
<li class="md-nav__item">
<a href="../merge_sort/" class="md-nav__link">
11.5. &nbsp; 归并排序
11.6. &nbsp; 归并排序
</a>
</li>
@ -1503,7 +1519,7 @@
<li class="md-nav__item">
<a href="../bucket_sort/" class="md-nav__link">
11.6. &nbsp; 桶排序
11.7. &nbsp; 桶排序
</a>
</li>
@ -1517,7 +1533,7 @@
<li class="md-nav__item">
<a href="../counting_sort/" class="md-nav__link">
11.7. &nbsp; 计数排序
11.8. &nbsp; 计数排序
</a>
</li>
@ -1531,7 +1547,7 @@
<li class="md-nav__item">
<a href="../radix_sort/" class="md-nav__link">
11.8. &nbsp; 基数排序
11.9. &nbsp; 基数排序
</a>
</li>
@ -1554,7 +1570,7 @@
<a href="./" class="md-nav__link md-nav__link--active">
11.9. &nbsp; 小结
11.10. &nbsp; 小结
</a>
</li>
@ -1814,10 +1830,10 @@
<h1 id="119">11.9. &nbsp; 小结<a class="headerlink" href="#119" title="Permanent link">&para;</a></h1>
<h1 id="1110">11.10. &nbsp; 小结<a class="headerlink" href="#1110" title="Permanent link">&para;</a></h1>
<ul>
<li>冒泡排序通过交换相邻元素来实现排序。通过添加一个标志位来实现提前返回,我们可以将冒泡排序的最佳时间复杂度优化到 <span class="arithmatex">\(O(n)\)</span></li>
<li>插入排序每轮将排序区间内的元素插入到已排序区间的正确位置,从而完成排序。虽然插入排序的时间复杂度为 <span class="arithmatex">\(O(n^2)\)</span> ,但由于单元操作相对较少,它在小数据量的排序任务中非常受欢迎。</li>
<li>插入排序每轮将排序区间内的元素插入到已排序区间的正确位置,从而完成排序。虽然插入排序的时间复杂度为 <span class="arithmatex">\(O(n^2)\)</span> ,但由于单元操作相对较少,它在小数据量的排序任务中非常受欢迎。</li>
<li>快速排序基于哨兵划分操作实现排序。在哨兵划分中,有可能每次都选取到最差的基准数,导致时间复杂度劣化至 <span class="arithmatex">\(O(n^2)\)</span> 。引入中位数基准数或随机基准数可以降低这种劣化的概率。尾递归方法可以有效地减少递归深度,将空间复杂度优化到 <span class="arithmatex">\(O(\log n)\)</span></li>
<li>归并排序包括划分和合并两个阶段,典型地体现了分治策略。在归并排序中,排序数组需要创建辅助数组,空间复杂度为 <span class="arithmatex">\(O(n)\)</span> ;然而排序链表的空间复杂度可以优化至 <span class="arithmatex">\(O(1)\)</span></li>
<li>桶排序包含三个步骤:数据分桶、桶内排序和合并结果。它同样体现了分治策略,适用于数据体量很大的情况。桶排序的关键在于对数据进行平均分配。</li>
@ -1908,7 +1924,7 @@
<nav class="md-footer__inner md-grid" aria-label="页脚" >
<a href="../radix_sort/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 11.8. &amp;nbsp; 基数排序" rel="prev">
<a href="../radix_sort/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 11.9. &amp;nbsp; 基数排序" rel="prev">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</div>
@ -1917,7 +1933,7 @@
上一页
</span>
<div class="md-ellipsis">
11.8. &nbsp; 基数排序
11.9. &nbsp; 基数排序
</div>
</div>
</a>