﻿<?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>C++博客-Algorithm&amp;Arts</title><link>http://www.cppblog.com/simon/</link><description>all about code</description><language>zh-cn</language><lastBuildDate>Tue, 09 Jun 2026 22:24:58 GMT</lastBuildDate><pubDate>Tue, 09 Jun 2026 22:24:58 GMT</pubDate><ttl>60</ttl><item><title>我对于递归的理解~~</title><link>http://www.cppblog.com/simon/archive/2008/11/22/67563.html</link><dc:creator>Simon</dc:creator><author>Simon</author><pubDate>Sat, 22 Nov 2008 03:04:00 GMT</pubDate><guid>http://www.cppblog.com/simon/archive/2008/11/22/67563.html</guid><wfw:comment>http://www.cppblog.com/simon/comments/67563.html</wfw:comment><comments>http://www.cppblog.com/simon/archive/2008/11/22/67563.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/simon/comments/commentRss/67563.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/simon/services/trackbacks/67563.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n,data[</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;solve(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;t)<br><img id=Codehighlighter1_96_391_Open_Image onclick="this.style.display='none'; Codehighlighter1_96_391_Open_Text.style.display='none'; Codehighlighter1_96_391_Closed_Image.style.display='inline'; Codehighlighter1_96_391_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_96_391_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_96_391_Closed_Text.style.display='none'; Codehighlighter1_96_391_Open_Image.style.display='inline'; Codehighlighter1_96_391_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_96_391_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 src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_96_391_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i=1;i&lt;=n;i++)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;data[i]&lt;&lt;'&nbsp;';<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;endl;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(t</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">n)<br><img id=Codehighlighter1_178_294_Open_Image onclick="this.style.display='none'; Codehighlighter1_178_294_Open_Text.style.display='none'; Codehighlighter1_178_294_Closed_Image.style.display='inline'; Codehighlighter1_178_294_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_178_294_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_178_294_Closed_Text.style.display='none'; Codehighlighter1_178_294_Open_Image.style.display='inline'; Codehighlighter1_178_294_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_178_294_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 src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_178_294_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;system("pause");<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"final";</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&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;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">n;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">data[i]</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">t;i</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">n;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_321_389_Open_Image onclick="this.style.display='none'; Codehighlighter1_321_389_Open_Text.style.display='none'; Codehighlighter1_321_389_Closed_Image.style.display='inline'; Codehighlighter1_321_389_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_321_389_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_321_389_Closed_Text.style.display='none'; Codehighlighter1_321_389_Open_Image.style.display='inline'; Codehighlighter1_321_389_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_321_389_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 src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_321_389_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;swap(data[i],data[t]);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;solve&nbsp;(t</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;swap(data[i],data[t]);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_404_472_Open_Image onclick="this.style.display='none'; Codehighlighter1_404_472_Open_Text.style.display='none'; Codehighlighter1_404_472_Closed_Image.style.display='inline'; Codehighlighter1_404_472_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_404_472_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_404_472_Closed_Text.style.display='none'; Codehighlighter1_404_472_Open_Image.style.display='inline'; Codehighlighter1_404_472_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_404_472_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 src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_404_472_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">n;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">n;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data[i]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;solve(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">n;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_474_709_Open_Image onclick="this.style.display='none'; Codehighlighter1_474_709_Open_Text.style.display='none'; Codehighlighter1_474_709_Closed_Image.style.display='inline'; Codehighlighter1_474_709_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_474_709_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_474_709_Closed_Text.style.display='none'; Codehighlighter1_474_709_Open_Image.style.display='inline'; Codehighlighter1_474_709_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_474_709_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">/**/</span><span id=Codehighlighter1_474_709_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>我发现从扎实的基础必须从深刻理解基本知识&nbsp;开始<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>这个递归的过程是这样的<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>首先&nbsp;第一位跟第一位交换&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>一直交换T==N<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>此时输出没有交换的情况<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>然后返回上一层递归<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>在这一层里面T=N-1<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>而且循环元素是第二个，所以先跟第三个交换<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>然后再返回上一层<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>以第一个为循环元素&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>跟第二个循环<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>然后再以第二个元素&#8230;&#8230;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>如此往复<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>把整个图表构造出来~~~<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>哇咔咔&nbsp;&nbsp;自己想出来了&nbsp;&nbsp;OH&nbsp;YEAH!<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>3<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>1&nbsp;2&nbsp;3<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>1&nbsp;3&nbsp;2<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>2&nbsp;1&nbsp;3<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>2&nbsp;3&nbsp;1<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>3&nbsp;2&nbsp;1<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>3&nbsp;1&nbsp;2<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.cppblog.com/simon/aggbug/67563.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/simon/" target="_blank">Simon</a> 2008-11-22 11:04 <a href="http://www.cppblog.com/simon/archive/2008/11/22/67563.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>