﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-neverend的日志-随笔分类-数据结构&amp;算法</title><link>http://www.blogjava.net/neverend/category/46502.html</link><description>不记录，终将被遗忘。</description><language>zh-cn</language><lastBuildDate>Mon, 04 Oct 2010 14:14:37 GMT</lastBuildDate><pubDate>Mon, 04 Oct 2010 14:14:37 GMT</pubDate><ttl>60</ttl><item><title>《编程之美》阅读笔记</title><link>http://www.blogjava.net/neverend/archive/2010/09/29/333339.html</link><dc:creator>neverend</dc:creator><author>neverend</author><pubDate>Wed, 29 Sep 2010 03:10:00 GMT</pubDate><guid>http://www.blogjava.net/neverend/archive/2010/09/29/333339.html</guid><wfw:comment>http://www.blogjava.net/neverend/comments/333339.html</wfw:comment><comments>http://www.blogjava.net/neverend/archive/2010/09/29/333339.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/neverend/comments/commentRss/333339.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/neverend/services/trackbacks/333339.html</trackback:ping><description><![CDATA[<p><br />
<span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">2.1求8位二进制数中1的个数<br />
解法1：直观法，每次除以2，计算余数为1的个数 O(log2v) <br />
解法2：简单位操作，每次与0x01做与运算，再右移一位。O(log2v)<br />
解法3：使用位操作v &amp; (v-1) , 每次可减少二进制数字中的一个1。（若v &amp; (v-1) == 0, 则v为2的方幂） <br />
解法4：空间换时间，利用题目中字长8位的破绽，建立一个穷举数组。O(1)</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">知识点：位运算的性质<br />
附：数组有2n+1个数，其中n个数成对出现，找出非成对出现的那个数。<br />
数组所有元素做异或操作。</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">2.2 <br />
1.N!的末尾有多少个零<br />
2.N!二进制表示中最低位1的位置</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">1.解法：质因数分解可知，0只有2*5可得，所以0的个数就是质因数分解中2的个数与5的个数的最小值，实际上就是<br />
求5的个数Z。<br />
Z= [N/5] +　[N/5^2] +［N/5^3］+ &#8230;&#8230; <br />
[N/5]表示不大于N的数中5的倍数贡献一个5 <br />
[N/5^2]表示不大于N的数中5^2再贡献一个5/。</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">2.解法：因为质因数分解中只有2是偶数，所以Z = [N/2] + [N/2^2] + [N/2^3] + &#8230;&#8230; +</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">2.3寻找多数元素问题<br />
解法：减治：每次删除两个不同的ID,水王ID出现的次数仍旧会超过总数的一半。</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">2.4从1到N的所有数中&#8220;1&#8221;出现的个数<br />
解法：寻找1出现的规律，比较复杂。</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">2.5寻找N个整数中最大的K个数<br />
解法1：选择排序，选出最大的K个数。 O(n*k)<br />
&nbsp;一点改进：部分堆排序，先建堆，再排出最大的k个数即可。O(n)+O(logn*k)<br />
解法2：分治，利用快速排序的划分思路。O(n*log2k)<br />
解法3：二分搜索（与《编程珠玑》第二章问题A思路类似），有两种划分方式：<br />
1.设已知N个数中最小值Vmin，最大值Vmax，对区间[Vmin, Vmax]做二分即可。<br />
2.设N个整数是M位长的。从最高位开始，按bi位0、1二分。<br />
此解法适用于大数据量的处理，不过要多次读写若干个临时文件。<br />
解法4：建一个最小堆存储K个数，堆顶为堆中最小值。<br />
对第k到N个数，若A[i]大于堆顶H[0]，令H[0]=A[i]，再调用shift-down过程调整堆。<br />
此解法非常适合于N值很大的情况，复杂度为O(n * log2k)<br />
解法5：空间换时间，用count[Vmax]计算每个数字出现的次数。<br />
如果Vmax很大，将[0, Vmax]分成m个小块，再分别讨论即可。 </span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">2.7最大公约数问题<br />
&nbsp;用位运算求解<br />
&nbsp;&nbsp; 位运算问题： <br />
&nbsp;&nbsp; 1.求一个整数的二进制表示中1的个数<br />
&nbsp;&nbsp; 2.逆转一个整数的二进制表示问题</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">2.9斐波那契数列<br />
&#183;递归 效率最低<br />
&#183;迭代 O(n)<br />
&#183;矩阵分治法 </span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">2.14子数组之和的最大值 <br />
分治 <br />
动态规划</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">2.15子矩阵之和的最大值<br />
固定一维，另一维转化为子数组之和的最大值问题</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">
</span></span></span></p>
<p>2.16求数组中最长递增字符列的长度</p>
<p>解法1：动态规划</p>
<p>假设array[]的前i个元素中，最长递增子序列的长度为LIS[i]，</p>
<p>则，LIS[i + １] = max{1, LIS[k]+1}, array[i+1] &gt; array[k], for any k&lt;=i</p>
<p>
</p>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;LIS(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">[]&nbsp;array)&nbsp;{<br />
</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">[]&nbsp;LIS&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">[array.length];<br />
</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;array.length;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;LIS[i]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;j&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;j</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">i;&nbsp;j</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(array[i]&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;array[j]&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;LIS[j]&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">LIS[i])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIS[i]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;LIS[j]&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">　</span><span style="color: #000000; ">１</span><span style="color: #000000; ">;　<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}&nbsp;<br />
}<br />
</span></div>
<p>&nbsp;</p>
<p>O(N^2)的时间复杂度</p>
<p>解法2：</p>
<p>MLIS[i]定义为前i个元素中，以array[i]为最大元素的最长递增子序列的长度。</p>
<p>可以证明，MLIS[i]的最大值也是最终的结果。</p>
<p>MaxV[i]保存长度为i的递增子序列最大元素的最小值。</p>
<p>解法2的程序更新MaxV的部分应该是有问题的，由此导致时间复杂度的分析错误，并且解法3也是错误的。</p>
<p><br />
</p>
<p>2.17数组循环移位</p>
<p>
</p>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;rightshift(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">arr,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;N,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;k)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;K&nbsp;</span><span style="color: #000000; ">%=</span><span style="color: #000000; ">&nbsp;N;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Reverse(arr,&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;N</span><span style="color: #000000; ">-</span><span style="color: #000000; ">k</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;Reverse(arr,&nbsp;N</span><span style="color: #000000; ">-</span><span style="color: #000000; ">k,&nbsp;N</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;Reverse(arr,&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;N</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />
}</span></div>
<p>&nbsp;</p>
<p>数组问题思路：</p>
<p>排序思路</p>
<p>动态规划</p>
<p>看成一个数列或向量</p>
<p><br />
</p>
<p>2.18数组分割</p>
<p><br />
</p>
<p>3.1字符串移位包含的问题</p>
<p>给定两个字符串s1和s2，要求判定s2能否被s1做循环移位得到的字符串包含。例如：s1 = AABCD , s2 = CDAA，返回true. 给定s1 = ABCD 和 s2 = ACBD，返回false.</p>
<p>解法1：模拟字符串移位的过程，判断是否包含子串</p>
<p>解法2：判断s2是否为s1s1的子串即可。</p>
<p>解法3：不申请空间，模拟判断s2是否为s1s1子串的过程。</p>
<p>思路：字符串可以抽象成向量来考虑。</p>
<p><br />
</p>
<p>3.2电话号码对应英语单词</p>
<p>类似于求幂集问题</p>
<p>解法1：迭代，用while循环模拟</p>
<p>解法2：递归</p>
<p>&nbsp;</p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">3.3计算字符串相似度<br />
递归求解<br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;calStrDis(</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">[]&nbsp;strA,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;pABegin,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;pAEnd,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">[]&nbsp;strB,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;pBBegin,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;pBEnd)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(pABegin&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;pAEnd)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(pBBegin&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;pBEnd)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;pBEnd&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;pBBegin&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(pBBegin&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;pBEnd)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(pABegin&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;pAEnd)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;pAEnd&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;pABegin&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(strA[pABegin]&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;strB[pBBegin])&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;calStrDis(strA,&nbsp;pABegin&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;pAEnd,&nbsp;strB,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pBBegin&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;pBEnd);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;t1&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;calStrDis(strA,&nbsp;pABegin,&nbsp;pAEnd,&nbsp;strB,&nbsp;pBBegin&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pBEnd);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;t2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;calStrDis(strA,&nbsp;pABegin&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;pAEnd,&nbsp;strB,&nbsp;pBBegin&nbsp;,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pBEnd);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;t3&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;calStrDis(strA,&nbsp;pABegin&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;pAEnd,&nbsp;strB,&nbsp;pBBegin&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pBEnd);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;min(t1,&nbsp;t2,&nbsp;t3)&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
递归优化，如何存储子问题的解？</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">3.4从无头链表中删除节点<br />
这个问题很无耻</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">3.5最短摘要生成<br />
有空再看</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">3.6编程判断两个链表是否相交<br />
转化成链表是否有环的问题</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">3.7队列中取最大值操作<br />
可分解为两个子问题<br />
子问题1：设计一个堆栈，使入栈，出栈，取最大值的时间复杂度都是O(1)。<br />
思路：用空间换时间，加一个数组link2NextMaxItem[]，link2NextMaxItem[i]存储的是前i个元素中最大值的下标。</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">子问题2：用上述特性的两个堆栈实现一个队列<br />
堆栈A负责入队，堆栈B负责出队。当堆栈B空的时候，将堆栈A中的数据全部弹出并压入堆栈B</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">3.8 求二叉树结点之间的最大距离<br />
动态规划实现，还是不太懂。</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">3.9重建二叉树<br />
递归求解</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">3.10分层遍历二叉树<br />
队列遍历二叉树+变量标记层次</span></span></span></p>
<p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-size: 10pt">3.11程序改错<br />
编写正确的二分搜索程序<br />
C代码：<br />
</span></span></span></p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; "><span style="font-size: 10pt"><img id="Codehighlighter1_46_466_Open_Image" onclick="this.style.display='none'; Codehighlighter1_46_466_Open_Text.style.display='none'; Codehighlighter1_46_466_Closed_Image.style.display='inline'; Codehighlighter1_46_466_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_46_466_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_46_466_Closed_Text.style.display='none'; Codehighlighter1_46_466_Open_Image.style.display='inline'; Codehighlighter1_46_466_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;BinSearch(SeqList&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;R，&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;n&nbsp;,&nbsp;KeyType&nbsp;K&nbsp;)</span><span id="Codehighlighter1_46_466_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_46_466_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">在有序表R[0..n-1]中进行二分查找，成功时返回结点的位置，失败时返回-1</span></span><span style="color: #008000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span></span><span style="font-size: 10pt"><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;low</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">，high</span><span style="color: #000000">=</span><span style="color: #000000">n</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">，mid；&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">置当前查找区间上、下界的初值</span></span><span style="color: #008000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span></span><span style="font-size: 10pt"><span style="color: #000000">　　</span><span style="color: #0000ff">if</span><span style="color: #000000">(R[low].key</span><span style="color: #000000">==</span></span><span style="font-size: 10pt"><span style="color: #000000">K)<br />
<img id="Codehighlighter1_153_170_Open_Image" onclick="this.style.display='none'; Codehighlighter1_153_170_Open_Text.style.display='none'; Codehighlighter1_153_170_Closed_Image.style.display='inline'; Codehighlighter1_153_170_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_153_170_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_153_170_Closed_Text.style.display='none'; Codehighlighter1_153_170_Open_Image.style.display='inline'; Codehighlighter1_153_170_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　　</span><span id="Codehighlighter1_153_170_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_153_170_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span></span><span style="color: #000000"><span style="font-size: 10pt">&nbsp;;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />　　}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img id="Codehighlighter1_190_423_Open_Image" onclick="this.style.display='none'; Codehighlighter1_190_423_Open_Text.style.display='none'; Codehighlighter1_190_423_Closed_Image.style.display='inline'; Codehighlighter1_190_423_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_190_423_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_190_423_Closed_Text.style.display='none'; Codehighlighter1_190_423_Open_Image.style.display='inline'; Codehighlighter1_190_423_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　　</span></span><span style="font-size: 10pt"><span style="color: #0000ff">while</span><span style="color: #000000">(low</span><span style="color: #000000">&lt;=</span><span style="color: #000000">high)</span><span id="Codehighlighter1_190_423_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_190_423_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">当前查找区间R[low..high]非空</span></span><span style="color: #008000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span></span><span style="font-size: 10pt"><span style="color: #000000">　　mid</span><span style="color: #000000">=</span><span style="color: #000000">low</span><span style="color: #000000">+</span><span style="color: #000000">((high</span><span style="color: #000000">-</span><span style="color: #000000">low)</span><span style="color: #000000">/</span><span style="color: #000000">2</span><span style="color: #000000">)；</span><span style="color: #008000">//</span><span style="color: #008000">使用&nbsp;(low&nbsp;+&nbsp;high)&nbsp;/&nbsp;2&nbsp;会有整数溢出的问题</span></span><span style="color: #008000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span></span><span style="font-size: 10pt"><span style="color: #000000">　　</span><span style="color: #0000ff">if</span><span style="color: #000000">(R[mid].key</span><span style="color: #000000">==</span></span><span style="font-size: 10pt"><span style="color: #000000">K)<br />
<img id="Codehighlighter1_294_321_Open_Image" onclick="this.style.display='none'; Codehighlighter1_294_321_Open_Text.style.display='none'; Codehighlighter1_294_321_Closed_Image.style.display='inline'; Codehighlighter1_294_321_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_294_321_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_294_321_Closed_Text.style.display='none'; Codehighlighter1_294_321_Open_Image.style.display='inline'; Codehighlighter1_294_321_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　　</span><span id="Codehighlighter1_294_321_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_294_321_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;mid；&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">查找成功返回</span></span><span style="color: #008000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /></span></span><span style="color: #000000"><span style="font-size: 10pt">　　}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　</span></span><span style="font-size: 10pt"><span style="color: #0000ff">if</span><span style="color: #000000">(R[mid].key</span><span style="color: #000000">&gt;</span></span><span style="font-size: 10pt"><span style="color: #000000">K)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　high</span><span style="color: #000000">=</span><span style="color: #000000">mid</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">继续在R[low..mid-1]中查找</span></span><span style="color: #008000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span></span><span style="font-size: 10pt"><span style="color: #000000">　　</span><span style="color: #0000ff">else</span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　low</span></span><span style="font-size: 10pt"><span style="color: #000000">=</span><span style="color: #000000">mid</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">；&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">继续在R[mid+1..high]中查找</span></span><span style="color: #008000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /></span></span><span style="color: #000000"><span style="font-size: 10pt">　　}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　</span></span><span style="font-size: 10pt"><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">；&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">当low&gt;high时表示查找区间为空，查找失败</span></span><span style="color: #008000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span></span><span style="color: #000000"><span style="font-size: 10pt">　　}</span></span></span><span style="font-size: 10pt"><span style="color: #000000">&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">BinSeareh</span></span></div>
<p><br />
<span style="font-size: 10pt">Java代码：</span></p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; "><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;binarySearch(</span><span style="color: #0000ff">int</span><span style="color: #000000">[]&nbsp;srcArray,&nbsp;</span><span style="color: #0000ff">int</span></span><span style="font-size: 10pt"><span style="color: #000000">&nbsp;des)<br />
<img id="Codehighlighter1_58_320_Open_Image" onclick="this.style.display='none'; Codehighlighter1_58_320_Open_Text.style.display='none'; Codehighlighter1_58_320_Closed_Image.style.display='inline'; Codehighlighter1_58_320_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_58_320_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_58_320_Closed_Text.style.display='none'; Codehighlighter1_58_320_Open_Image.style.display='inline'; Codehighlighter1_58_320_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />　　</span><span id="Codehighlighter1_58_320_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_58_320_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;low&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span></span><span style="font-size: 10pt"><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;high&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;srcArray.length</span><span style="color: #000000">-</span><span style="color: #000000">1</span></span><span style="font-size: 10pt"><span style="color: #000000">;<br />
<img id="Codehighlighter1_128_303_Open_Image" onclick="this.style.display='none'; Codehighlighter1_128_303_Open_Text.style.display='none'; Codehighlighter1_128_303_Closed_Image.style.display='inline'; Codehighlighter1_128_303_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_128_303_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_128_303_Closed_Text.style.display='none'; Codehighlighter1_128_303_Open_Image.style.display='inline'; Codehighlighter1_128_303_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　　</span><span style="color: #0000ff">while</span><span style="color: #000000">(low&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">&nbsp;high)&nbsp;</span><span id="Codehighlighter1_128_303_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_128_303_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;middle&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(low&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;high)</span><span style="color: #000000">/</span><span style="color: #000000">2</span></span><span style="font-size: 10pt"><span style="color: #000000">;<br />
<img id="Codehighlighter1_191_212_Open_Image" onclick="this.style.display='none'; Codehighlighter1_191_212_Open_Text.style.display='none'; Codehighlighter1_191_212_Closed_Image.style.display='inline'; Codehighlighter1_191_212_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_191_212_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_191_212_Closed_Text.style.display='none'; Codehighlighter1_191_212_Open_Image.style.display='inline'; Codehighlighter1_191_212_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　　</span><span style="color: #0000ff">if</span><span style="color: #000000">(des&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;srcArray[middle])&nbsp;</span><span id="Codehighlighter1_191_212_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_191_212_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　</span><span style="color: #0000ff">return</span></span><span style="color: #000000"><span style="font-size: 10pt">&nbsp;middle;<br />
<img id="Codehighlighter1_244_269_Open_Image" onclick="this.style.display='none'; Codehighlighter1_244_269_Open_Text.style.display='none'; Codehighlighter1_244_269_Closed_Image.style.display='inline'; Codehighlighter1_244_269_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_244_269_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_244_269_Closed_Text.style.display='none'; Codehighlighter1_244_269_Open_Image.style.display='inline'; Codehighlighter1_244_269_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　　}</span></span></span><span style="font-size: 10pt"><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(des&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">srcArray[middle])&nbsp;</span><span id="Codehighlighter1_244_269_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_244_269_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　high&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;middle&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span></span><span style="color: #000000"><span style="font-size: 10pt">;<br />
<img id="Codehighlighter1_275_299_Open_Image" onclick="this.style.display='none'; Codehighlighter1_275_299_Open_Text.style.display='none'; Codehighlighter1_275_299_Closed_Image.style.display='inline'; Codehighlighter1_275_299_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_275_299_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_275_299_Closed_Text.style.display='none'; Codehighlighter1_275_299_Open_Image.style.display='inline'; Codehighlighter1_275_299_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　　}</span></span></span><span style="font-size: 10pt"><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_275_299_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_275_299_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　low&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;middle&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span></span><span style="color: #000000"><span style="font-size: 10pt">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />　　}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />　　}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　</span></span><span style="font-size: 10pt"><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span></span><span style="color: #000000"><span style="font-size: 10pt">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />　　}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></span></div>
<p><br />
<span style="font-size: 10pt">4.8三角形测试用例<br />
测试用例的三种类型：<br />
正常输入 覆盖功能点<br />
非法输入 值域错误 类型错误<br />
边界值输入 0 1 MAX MIN&nbsp;</span></p>
<img src ="http://www.blogjava.net/neverend/aggbug/333339.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/neverend/" target="_blank">neverend</a> 2010-09-29 11:10 <a href="http://www.blogjava.net/neverend/archive/2010/09/29/333339.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>