<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Algorithm on MT&#39;s blog</title>
    <link>https://rmtt.github.io/zh/categories/algorithm/</link>
    <description>Recent content in Algorithm on MT&#39;s blog</description>
    <generator>Hugo</generator>
    <language>zh</language>
    <lastBuildDate>Sun, 27 Jun 2021 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://rmtt.github.io/zh/categories/algorithm/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>算法导论 Chapter1&amp;2</title>
      <link>https://rmtt.github.io/zh/posts/introduction_to_algorithm_chapter12/</link>
      <pubDate>Sun, 27 Jun 2021 00:00:00 +0000</pubDate>
      <guid>https://rmtt.github.io/zh/posts/introduction_to_algorithm_chapter12/</guid>
      <description>&lt;h1 id=&#34;算法&#34;&gt;算法&lt;/h1&gt;
&lt;h2 id=&#34;什么是算法&#34;&gt;什么是算法&lt;/h2&gt;
&lt;h3 id=&#34;形式上的定义&#34;&gt;形式上的定义&lt;/h3&gt;
&lt;p&gt;Informally, an &lt;strong&gt;algorithm&lt;/strong&gt; is any well-defined computational procedure that takes some value, or set of values, as &lt;strong&gt;input&lt;/strong&gt; and produces some value, or set of values, as &lt;strong&gt;output&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&#34;个人理解&#34;&gt;个人理解&lt;/h3&gt;
&lt;p&gt;算法是CS中很多技术的基础，也应该是CS的核心所在。&lt;/p&gt;
&lt;h2 id=&#34;排序问题&#34;&gt;排序问题&lt;/h2&gt;
&lt;h3 id=&#34;插入排序&#34;&gt;插入排序&lt;/h3&gt;
&lt;p&gt;插入排序的过程跟打扑克时起牌的过程差不多，对于位置&lt;code&gt;i&lt;/code&gt;的元素，在其前面找到应该插入的位置插入即可，复杂度是$\theta(n^2)$。&lt;/p&gt;
&lt;h3 id=&#34;归并排序&#34;&gt;归并排序&lt;/h3&gt;
&lt;p&gt;归并排序就是将原序列递归分成多个小序列，然后合并的时候发现每个元素只需要$O(1)$的时间就可以确定其位置，比较次数较插入排序少了很多，所以复杂度比插入排序小，为$\theta(nlogn)$。&lt;/p&gt;
&lt;h3 id=&#34;归并插入&#34;&gt;归并+插入&lt;/h3&gt;
&lt;p&gt;考虑到算法复杂度的常数，在数据规模较小时，插入排序可能会比归并更优，所以在归并排序中，当子序列规模小于&lt;code&gt;k&lt;/code&gt;时，可采用插入排序来完成。&lt;/p&gt;
&lt;h2 id=&#34;延伸问题&#34;&gt;延伸问题&lt;/h2&gt;
&lt;h3 id=&#34;逆序对&#34;&gt;逆序对&lt;/h3&gt;
&lt;p&gt;序列中，数值和位置的大小关系不匹配便可以称为一个逆序。思考一下，可以发现插入排序中，元素的比较次数就是序列中逆序对的个数，而归并排序中同样也能推算出所有的比较次数，故可以在$\theta(nlogn)$的复杂度下解决该问题。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
