<?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>数据结构 on 我的笔记</title><link>http://note.leabol.top/categories/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/</link><description>Recent content in 数据结构 on 我的笔记</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Wed, 10 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://note.leabol.top/categories/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/index.xml" rel="self" type="application/rss+xml"/><item><title>为什么叫补码</title><link>http://note.leabol.top/posts/%E5%8E%9F%E7%A0%81-%E5%8F%8D%E7%A0%81%E5%92%8C%E8%A1%A5%E7%A0%81/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>http://note.leabol.top/posts/%E5%8E%9F%E7%A0%81-%E5%8F%8D%E7%A0%81%E5%92%8C%E8%A1%A5%E7%A0%81/</guid><description>&lt;h3 id="为什么叫补码twos-complement">为什么叫补码(Two&amp;rsquo;s complement)&lt;/h3>
&lt;p>计算机的加减法运算天生是一个&lt;a href="https://zhida.zhihu.com/search?content_id=190505781&amp;amp;content_type=Answer&amp;amp;match_order=1&amp;amp;q=%E6%A8%A12%5EN&amp;amp;zhida_source=entity">模2^N&lt;/a>的&lt;a href="https://zhida.zhihu.com/search?content_id=190505781&amp;amp;content_type=Answer&amp;amp;match_order=1&amp;amp;q=%E5%90%8C%E4%BD%99%E7%B1%BB&amp;amp;zhida_source=entity">同余类&lt;/a>上的运算，满2^N会抛弃进位，那表示有符号数时使用同余类代表很正常吧，比如-1 = 2^N -1 (mod 2^N)，-2 = 2^N-2 (mod 2^N)，这实际上就是&lt;a href="https://zhida.zhihu.com/search?content_id=190505781&amp;amp;content_type=Answer&amp;amp;match_order=1&amp;amp;q=%E8%A1%A5%E7%A0%81&amp;amp;zhida_source=entity">补码&lt;/a>了。&lt;/p></description></item><item><title>关于位图存储与数组下标存储的探讨</title><link>http://note.leabol.top/posts/%E5%85%B3%E4%BA%8E%E4%BD%8D%E5%9B%BE%E5%AD%98%E5%82%A8%E4%B8%8E%E6%95%B0%E7%BB%84%E4%B8%8B%E6%A0%87%E5%AD%98%E5%82%A8%E7%9A%84%E6%8E%A2%E8%AE%A8/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>http://note.leabol.top/posts/%E5%85%B3%E4%BA%8E%E4%BD%8D%E5%9B%BE%E5%AD%98%E5%82%A8%E4%B8%8E%E6%95%B0%E7%BB%84%E4%B8%8B%E6%A0%87%E5%AD%98%E5%82%A8%E7%9A%84%E6%8E%A2%E8%AE%A8/</guid><description>&lt;h1 id="关于位图存储与数组下标存储的探讨">关于位图存储与数组下标存储的探讨&lt;/h1>
&lt;p>最近在看《编程珠玑》，书中的第一章提到了位图。位图存储使用二进制位的位数信息，来表示数字。例如，存储1、3、4、6、8，这五个数字， 可以使用&amp;lt;1, 0, 1, 1, 0, 1, 0, 1&amp;gt;这样的向量来表示，这样可以大大减少存储空间， 只用了一个字节（8bit），就可以存储原来需要的8个数字才能表示的信息。&lt;/p>
&lt;p>当我跟朋友谈到这个方法时，他却产生了质疑，他觉得这样不如直接按照数组下标存储来的快。他认为数组下标直接存储，直接一步完成，二位图则需要每次位运算寻址，会非常费时间。于是我们就决定写一个程序，实际跑一下看看。&lt;/p>
&lt;p>这是位图的代码&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">typedef&lt;/span> &lt;span style="color:#66d9ef">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">uint32_t&lt;/span> &lt;span style="color:#f92672">*&lt;/span>bits;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">size_t&lt;/span> size;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} Bitmap;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Bitmap &lt;span style="color:#f92672">*&lt;/span>&lt;span style="color:#a6e22e">create_bitmap&lt;/span>(&lt;span style="color:#66d9ef">size_t&lt;/span> max_num) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">size_t&lt;/span> num_words &lt;span style="color:#f92672">=&lt;/span> (max_num &lt;span style="color:#f92672">+&lt;/span> &lt;span style="color:#ae81ff">31&lt;/span>) &lt;span style="color:#f92672">/&lt;/span> &lt;span style="color:#ae81ff">32&lt;/span>; &lt;span style="color:#75715e">// 计算需要多少个32位字
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span> Bitmap &lt;span style="color:#f92672">*&lt;/span>bm &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#a6e22e">malloc&lt;/span>(&lt;span style="color:#66d9ef">sizeof&lt;/span>(Bitmap));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> (&lt;span style="color:#f92672">!&lt;/span>bm) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">perror&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Bitmap allocation failed&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">exit&lt;/span>(EXIT_FAILURE);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> bm&lt;span style="color:#f92672">-&amp;gt;&lt;/span>bits &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#a6e22e">calloc&lt;/span>(num_words, &lt;span style="color:#66d9ef">sizeof&lt;/span>(&lt;span style="color:#66d9ef">uint32_t&lt;/span>)); &lt;span style="color:#75715e">// 分配约 1亿位 ≈ 12.5MB
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span> bm&lt;span style="color:#f92672">-&amp;gt;&lt;/span>size &lt;span style="color:#f92672">=&lt;/span> max_num;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> (&lt;span style="color:#f92672">!&lt;/span>bm&lt;span style="color:#f92672">-&amp;gt;&lt;/span>bits) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">perror&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Bitmap bits allocation failed&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">exit&lt;/span>(EXIT_FAILURE);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> bm;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">void&lt;/span> &lt;span style="color:#a6e22e">bitmap_set&lt;/span>(Bitmap &lt;span style="color:#f92672">*&lt;/span>bm, &lt;span style="color:#66d9ef">int&lt;/span> num) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">size_t&lt;/span> word_idx &lt;span style="color:#f92672">=&lt;/span> num &lt;span style="color:#f92672">/&lt;/span> &lt;span style="color:#ae81ff">32&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">size_t&lt;/span> bit_idx &lt;span style="color:#f92672">=&lt;/span> num &lt;span style="color:#f92672">%&lt;/span> &lt;span style="color:#ae81ff">32&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> bm&lt;span style="color:#f92672">-&amp;gt;&lt;/span>bits[word_idx] &lt;span style="color:#f92672">|=&lt;/span> (&lt;span style="color:#ae81ff">1U&lt;/span> &lt;span style="color:#f92672">&amp;lt;&amp;lt;&lt;/span> bit_idx);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">int&lt;/span> &lt;span style="color:#a6e22e">bitmap_get&lt;/span>(&lt;span style="color:#66d9ef">const&lt;/span> Bitmap &lt;span style="color:#f92672">*&lt;/span>bm, &lt;span style="color:#66d9ef">int&lt;/span> num) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">size_t&lt;/span> word_idx &lt;span style="color:#f92672">=&lt;/span> num &lt;span style="color:#f92672">/&lt;/span> &lt;span style="color:#ae81ff">32&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">size_t&lt;/span> bit_idx &lt;span style="color:#f92672">=&lt;/span> num &lt;span style="color:#f92672">%&lt;/span> &lt;span style="color:#ae81ff">32&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> (bm&lt;span style="color:#f92672">-&amp;gt;&lt;/span>bits[word_idx] &lt;span style="color:#f92672">&amp;gt;&amp;gt;&lt;/span> bit_idx) &lt;span style="color:#f92672">&amp;amp;&lt;/span> &lt;span style="color:#ae81ff">1U&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>位运算把每个字节大小的内存当作为一组，使用除法判断组数， 再用对8取余，得出每组的位次&lt;/p></description></item><item><title>基础算法归纳</title><link>http://note.leabol.top/posts/%E5%9F%BA%E7%A1%80%E7%AE%97%E6%B3%95%E5%BD%92%E7%BA%B3/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>http://note.leabol.top/posts/%E5%9F%BA%E7%A1%80%E7%AE%97%E6%B3%95%E5%BD%92%E7%BA%B3/</guid><description>&lt;h1 id="基础算法归纳">基础算法归纳&lt;/h1>
&lt;p>#cs #c #算法&lt;/p>
&lt;h2 id="输出最大值">输出最大值&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-C" data-lang="C">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#include&lt;/span> &lt;span style="color:#75715e">&amp;lt;stdio.h&amp;gt;&lt;/span>&lt;span style="color:#75715e">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">int&lt;/span> &lt;span style="color:#a6e22e">main&lt;/span>(&lt;span style="color:#66d9ef">void&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">int&lt;/span> i[&lt;span style="color:#ae81ff">3&lt;/span>], max;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">scanf&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;%d %d %d&amp;#34;&lt;/span>, &lt;span style="color:#f92672">&amp;amp;&lt;/span>i[&lt;span style="color:#ae81ff">0&lt;/span>], &lt;span style="color:#f92672">&amp;amp;&lt;/span>i[&lt;span style="color:#ae81ff">1&lt;/span>], &lt;span style="color:#f92672">&amp;amp;&lt;/span>i[&lt;span style="color:#ae81ff">2&lt;/span>]);&lt;span style="color:#75715e">//通过数组来代替不同变量
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span> max &lt;span style="color:#f92672">=&lt;/span> i[&lt;span style="color:#ae81ff">0&lt;/span>];
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">for&lt;/span> (&lt;span style="color:#66d9ef">int&lt;/span> j &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>; j &lt;span style="color:#f92672">&amp;lt;&lt;/span> n; j&lt;span style="color:#f92672">++&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> (max &lt;span style="color:#f92672">&amp;lt;&lt;/span> i[j])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> max &lt;span style="color:#f92672">=&lt;/span> i[j];
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">printf&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;%d&amp;#34;&lt;/span>, max);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="冒泡排序">冒泡排序&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-C" data-lang="C">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">void&lt;/span> &lt;span style="color:#a6e22e">BubbleSort&lt;/span>(&lt;span style="color:#66d9ef">int&lt;/span> arr[], &lt;span style="color:#66d9ef">int&lt;/span> n)&lt;span style="color:#75715e">//arr[] 在c中要用第一个数组值
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">int&lt;/span> flag, tmp;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">for&lt;/span> (&lt;span style="color:#66d9ef">int&lt;/span> i &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">0&lt;/span>; i &lt;span style="color:#f92672">&amp;lt;&lt;/span> n &lt;span style="color:#f92672">-&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>; i&lt;span style="color:#f92672">++&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> flag &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">for&lt;/span> (&lt;span style="color:#66d9ef">int&lt;/span> j &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">0&lt;/span>; j &lt;span style="color:#f92672">&amp;lt;&lt;/span> n &lt;span style="color:#f92672">-&lt;/span> i &lt;span style="color:#f92672">-&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span>; j&lt;span style="color:#f92672">++&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> (arr[j] &lt;span style="color:#f92672">&amp;gt;&lt;/span> arr[j &lt;span style="color:#f92672">+&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> tmp &lt;span style="color:#f92672">=&lt;/span> arr[j];
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> arr[j] &lt;span style="color:#f92672">=&lt;/span> arr[j &lt;span style="color:#f92672">+&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>];
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> arr[j &lt;span style="color:#f92672">+&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>] &lt;span style="color:#f92672">=&lt;/span> tmp;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> flag &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> (&lt;span style="color:#f92672">!&lt;/span>flag)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="筛选素数">筛选素数&lt;/h2>
&lt;p>暴力搜索&lt;/p></description></item><item><title>集合 列表 数组</title><link>http://note.leabol.top/posts/%E9%9B%86%E5%90%88%E5%88%97%E8%A1%A8%E5%92%8C%E6%95%B0%E7%BB%84/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>http://note.leabol.top/posts/%E9%9B%86%E5%90%88%E5%88%97%E8%A1%A8%E5%92%8C%E6%95%B0%E7%BB%84/</guid><description>&lt;h3 id="集合">&lt;em>集合&lt;/em>&lt;/h3>
&lt;hr>
&lt;p>&lt;a href="https://baike.baidu.com/item/%E9%9B%86%E5%90%88/2908117?fr=aladdin">集合&lt;/a>一般被定义为：由一个或多个确定的元素所构成的整体。
集合有什么特性呢？&lt;/p>
&lt;p>首先，&lt;strong>集合里的元素类型不一定相同&lt;/strong>。 你可以将商品看作一个集合，也可以将整个商店看作一个集合，这个商店中有人或者其他物品也没有关系。&lt;/p>
&lt;p>其次，&lt;strong>集合里的元素没有顺序&lt;/strong>。 我们不会这样讲：我想要集合中的第三个元素，因为集合是没有顺序的。&lt;/p>
&lt;p>事实上，这样的集合并不直接存在于编程语言中。然而，实际编程语言中的很多数据结构，就是在集合的基础上添加了一些规则形成的。&lt;/p>
&lt;h3 id="列表">&lt;em>列表&lt;/em>&lt;/h3>
&lt;hr>
&lt;p>列表（又称线性列表）的定义为：是一种数据项构成的有限序列，即按照一定的线性顺序，排列而成的数据项的集合。&lt;/p>
&lt;p>列表的概念是在集合的特征上形成的，它具有顺序，且长度是可变的。你可以把它看作一张购物清单：&lt;/p>
&lt;p>购物清单中的条目代表的类型可能不同，但是按照一定顺序进行了排列；
购物清单的长度是可变的，你可以向购物清单中增加、删除条目。
在编程语言中，列表最常见的表现形式有数组和链表，而我们熟悉的栈和队列则是两种特殊类型的列表。除此之外，向列表中添加、删除元素的具体实现方式会根据编程语言的不同而有所区分。&lt;/p>
&lt;h4 id="数组">数组&lt;/h4>
&lt;hr>
&lt;p>数组是列表的实现方式之一，也是面试中经常涉及到的数据结构。&lt;/p>
&lt;p>正如前面提到的，数组是列表的实现方式，它具有列表的特征，同时也具有自己的一些特征。然而，在具体的编程语言中，数组这个数据结构的实现方式具有一定差别。比如 C++ 和 Java 中，数组中的元素类型必须保持一致，而 Python 中则可以不同。Python 中的数组叫做 list，具有更多的高级功能。&lt;/p>
&lt;p>那么如何从宏观上区分列表和数组呢？这里有一个重要的概念：&lt;em>索引&lt;/em>。&lt;/p>
&lt;p>首先，数组会用一些名为 索引 的数字来标识每项数据在数组中的位置，且在大多数编程语言中，索引是从 0 算起的。我们可以根据数组中的索引，快速访问数组中的元素。&lt;/p>
&lt;p>而列表中没有索引，这是数组与列表最大的不同点。&lt;/p>
&lt;p>其次，数组中的元素在内存中是连续存储的，且每个元素占用相同大小的内存。&lt;/p>
&lt;p>相反，列表中的元素在内存中可能彼此相邻，也可能不相邻。比如列表的另一种实现方式——链表，它的元素在内存中则不一定是连续的。&lt;/p></description></item></channel></rss>