﻿<?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++博客-blacktusk--期待收获的季节-文章分类-算法导论</title><link>http://www.cppblog.com/heidaizx/category/5733.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 19 May 2008 20:40:39 GMT</lastBuildDate><pubDate>Mon, 19 May 2008 20:40:39 GMT</pubDate><ttl>60</ttl><item><title>二分查找算法</title><link>http://www.cppblog.com/heidaizx/articles/38098.html</link><dc:creator>heidaizx</dc:creator><author>heidaizx</author><pubDate>Sun, 09 Dec 2007 09:32:00 GMT</pubDate><guid>http://www.cppblog.com/heidaizx/articles/38098.html</guid><wfw:comment>http://www.cppblog.com/heidaizx/comments/38098.html</wfw:comment><comments>http://www.cppblog.com/heidaizx/articles/38098.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/heidaizx/comments/commentRss/38098.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/heidaizx/services/trackbacks/38098.html</trackback:ping><description><![CDATA[<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<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;midFind(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">a,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;N,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">left</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">right</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;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;middle;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(</span><span style="color: #0000ff;">left</span><span style="color: #000000;">&lt;=</span><span style="color: #0000ff;">right</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;middle</span><span style="color: #000000;">=</span><span style="color: #000000;">(</span><span style="color: #0000ff;">left</span><span style="color: #000000;">+</span><span style="color: #0000ff;">right</span><span style="color: #000000;">)</span><span style="color: #000000;">/</span><span style="color: #000000;">2</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(i</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">a[middle])&nbsp;</span><span style="color: #0000ff;">left</span><span style="color: #000000;">=</span><span style="color: #000000;">middle</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">a[middle])&nbsp;</span><span style="color: #0000ff;">right</span><span style="color: #000000;">=</span><span style="color: #000000;">middle</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;return&nbsp;middle</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}</span></div>
<br><img src ="http://www.cppblog.com/heidaizx/aggbug/38098.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/heidaizx/" target="_blank">heidaizx</a> 2007-12-09 17:32 <a href="http://www.cppblog.com/heidaizx/articles/38098.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分治法合并排序算法</title><link>http://www.cppblog.com/heidaizx/articles/38091.html</link><dc:creator>heidaizx</dc:creator><author>heidaizx</author><pubDate>Sun, 09 Dec 2007 07:39:00 GMT</pubDate><guid>http://www.cppblog.com/heidaizx/articles/38091.html</guid><wfw:comment>http://www.cppblog.com/heidaizx/comments/38091.html</wfw:comment><comments>http://www.cppblog.com/heidaizx/articles/38091.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/heidaizx/comments/commentRss/38091.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/heidaizx/services/trackbacks/38091.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;"><br><br>void&nbsp;merge(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a[],</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;p,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;q,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;r)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n1</span><span style="color: #000000;">=</span><span style="color: #000000;">q</span><span style="color: #000000;">-</span><span style="color: #000000;">p</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n2</span><span style="color: #000000;">=</span><span style="color: #000000;">r</span><span style="color: #000000;">-</span><span style="color: #000000;">q;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">L</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">[n1</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">R</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">[n2</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;m,n;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(m</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;m</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n1;m</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L[m]</span><span style="color: #000000;">=</span><span style="color: #000000;">a[p</span><span style="color: #000000;">+</span><span style="color: #000000;">m];<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(n</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;n</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n2;n</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R[n]</span><span style="color: #000000;">=</span><span style="color: #000000;">a[q</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;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;L[n1]</span><span style="color: #000000;">=</span><span style="color: #000000;">2147483647</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;R[n2]</span><span style="color: #000000;">=</span><span style="color: #000000;">2147483647</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;k</span><span style="color: #000000;">=</span><span style="color: #000000;">p;k</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">r;k</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(L[i]</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">R[j])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[k]</span><span style="color: #000000;">=</span><span style="color: #000000;">L[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[k]</span><span style="color: #000000;">=</span><span style="color: #000000;">R[j];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  //增加一个全局变量number，并且在此执行number+=m-i+1,就可以算序列中有几个逆序对<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>}<br><br>void&nbsp;mergesort(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a[],</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;p,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;r)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;q;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(p</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">r)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q</span><span style="color: #000000;">=</span><span style="color: #000000;">(p</span><span style="color: #000000;">+</span><span style="color: #000000;">r)</span><span style="color: #000000;">/</span><span style="color: #000000;">2</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mergesort(a,p,q);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mergesort(a,q</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">,r);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;merge(a,p,q,r);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>}<br></span></div>
<br> <img src ="http://www.cppblog.com/heidaizx/aggbug/38091.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/heidaizx/" target="_blank">heidaizx</a> 2007-12-09 15:39 <a href="http://www.cppblog.com/heidaizx/articles/38091.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>