﻿<?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-随心所欲</title><link>http://www.blogjava.net/haha0515/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:04:35 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:04:35 GMT</pubDate><ttl>60</ttl><item><title>快速排序</title><link>http://www.blogjava.net/haha0515/archive/2010/01/17/309857.html</link><dc:creator>创意恒动力</dc:creator><author>创意恒动力</author><pubDate>Sun, 17 Jan 2010 08:14:00 GMT</pubDate><guid>http://www.blogjava.net/haha0515/archive/2010/01/17/309857.html</guid><wfw:comment>http://www.blogjava.net/haha0515/comments/309857.html</wfw:comment><comments>http://www.blogjava.net/haha0515/archive/2010/01/17/309857.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haha0515/comments/commentRss/309857.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haha0515/services/trackbacks/309857.html</trackback:ping><description><![CDATA[快速排序介绍：<br />
快速排序（Quicksort）是对冒泡法的一种改进。由C. A. R. Hoare在1962年提出。<br />
<br />
基本思想是：<br />
通过一趟排序将要排序的数据分割成独立的两部分，其中一部分的所有数据都比另外一部分的所有数据都要小，然后再按此方法对这两部分数据分别进行快速排序，整个排序过程可以递归进行，以此达到整个数据变成有序序列。<br />
<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: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;my.sort;<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;QuickSort&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&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;a[]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;{&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">11</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">13</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">64</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">32</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">54</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">5</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">6</span><span style="color: #000000;">&nbsp;};<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><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;">void</span><span style="color: #000000;">&nbsp;sort(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;L,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;R)&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;L&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;R;<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;tmp;<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(L&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;R)&nbsp;{<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;R;)&nbsp;{<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;(a[</span><span style="color: #000000;">++</span><span style="color: #000000;">i]&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;a[R])&nbsp;{</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;从i开始，从前往后扫描，如果发现大于a[R](数组最后一个值)，与之对换</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;(j&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)&nbsp;{<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(j&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;i)&nbsp;{</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;如果i&nbsp;==&nbsp;j结束跳出循环</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(a[</span><span style="color: #000000;">--</span><span style="color: #000000;">j]&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;a[R])&nbsp;{</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;从J开始，从后往前扫描，如果发现小于a[i]，与之对换</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a[j];<br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[j]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a[i];<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tmp;<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a[i];<br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a[R];<br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[R]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tmp;<br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;b&nbsp;:&nbsp;a)&nbsp;{<br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(b&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">打印没一趟排序结果</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println();<br />
</span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">把数组分成两段排序</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort(L,&nbsp;i</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">基准数前面的数据进行排列</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort(i,&nbsp;R);</span><span style="color: #008000;">//</span><span style="color: #008000;">基准数后面的数据排列</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><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;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)&nbsp;{<br />
</span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">排序前：</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">46</span>&nbsp;<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;b&nbsp;:&nbsp;a)&nbsp;{<br />
</span><span style="color: #008080;">47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(b&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">48</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">49</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">\n排序过程：</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">50</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort(</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;a.length&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">排序后：</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">52</span>&nbsp;<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;b&nbsp;:&nbsp;a)&nbsp;{<br />
</span><span style="color: #008080;">53</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(b&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">54</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">55</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println();<br />
</span><span style="color: #008080;">56</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">57</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">58</span>&nbsp;</div>
<br />
<img src ="http://www.blogjava.net/haha0515/aggbug/309857.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haha0515/" target="_blank">创意恒动力</a> 2010-01-17 16:14 <a href="http://www.blogjava.net/haha0515/archive/2010/01/17/309857.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java linkedlist 算法笔记一</title><link>http://www.blogjava.net/haha0515/archive/2010/01/04/308200.html</link><dc:creator>创意恒动力</dc:creator><author>创意恒动力</author><pubDate>Mon, 04 Jan 2010 11:23:00 GMT</pubDate><guid>http://www.blogjava.net/haha0515/archive/2010/01/04/308200.html</guid><wfw:comment>http://www.blogjava.net/haha0515/comments/308200.html</wfw:comment><comments>http://www.blogjava.net/haha0515/archive/2010/01/04/308200.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haha0515/comments/commentRss/308200.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haha0515/services/trackbacks/308200.html</trackback:ping><description><![CDATA[<p>自我理解java linkedlist插入数据的算法：<br />
首先看一下，linkedlist插入源代码：</p>
<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: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;LinkedList<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;AbstractSequentialList<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;List,&nbsp;Deque,&nbsp;Cloneable,&nbsp;java.io.Serializable<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">transient</span><span style="color: #000000;">&nbsp;Entry&nbsp;header&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Entry(</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">初始化时先实例一个header，链表头</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Constructs&nbsp;an&nbsp;empty&nbsp;list.//构造一个空链表<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;LinkedList()&nbsp;{<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;header.next&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;header.previous&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;header;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">把链表头和尾先连到自己（1）</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addBefore(e,&nbsp;header);（</span><span style="color: #000000;">2</span><span style="color: #000000;">）<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /><img src="http://www.blogjava.net/Images/dot.gif" alt="" />.<br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;add(E&nbsp;e)&nbsp;{</span><span style="color: #008000;">//</span><span style="color: #008000;">插入链表方法</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&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: #0000ff;">true</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /><img src="http://www.blogjava.net/Images/dot.gif" alt="" />.<br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Entry&nbsp;{</span><span style="color: #008000;">//</span><span style="color: #008000;">每个数据存放，所要用到的静态内部类</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;E&nbsp;element;<br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Entry&nbsp;next;</span><span style="color: #008000;">//</span><span style="color: #008000;">后一个节点</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Entry&nbsp;previous;</span><span style="color: #008000;">//</span><span style="color: #008000;">接一个节点</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Entry(E&nbsp;element,&nbsp;Entry&nbsp;next,&nbsp;Entry&nbsp;previous)&nbsp;{<br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.element&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;element;<br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.next&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;next;<br />
</span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.previous&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;previous;<br />
</span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">37</span>&nbsp;<span style="color: #008000;">//</span><span style="color: #008000;">插入操作方法</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;Entry&nbsp;addBefore(E&nbsp;e,&nbsp;Entry&nbsp;entry)&nbsp;{<br />
</span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Entry&nbsp;newEntry&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Entry(e,&nbsp;entry,&nbsp;entry.previous);（</span><span style="color: #000000;">3</span><span style="color: #000000;">）<br />
</span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newEntry.previous.next&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;newEntry;（</span><span style="color: #000000;">4</span><span style="color: #000000;">）<br />
</span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newEntry.next.previous&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;newEntry;（</span><span style="color: #000000;">5</span><span style="color: #000000;">）<br />
</span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size</span><span style="color: #000000;">++</span><span style="color: #000000;">;（</span><span style="color: #000000;">6</span><span style="color: #000000;">）<br />
</span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modCount</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;newEntry;<br />
</span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">46</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">47</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">48</span>&nbsp;<span style="color: #008000;">/*</span><span style="color: #008000;">其他方法~~</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">49</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">50</span>&nbsp;</div>
<pre name="code" class="java"></pre>
<p>
以上部分就是算法所在：(一个简单的公式替换过程)<br />
<br />
算法步骤（对应上面的编号）：<br />
<br />
（1）实例化一个header (Entry)<br />
<br />
header.next = header<br />
<br />
header.previous = header<br />
<br />
当有第一条数据插入链表：<br />
<br />
（3）实例化一个 Entry newEntry （以下简称E1）<br />
<br />
E1.next = header<br />
<br />
E1.previous = header.previous<br />
<br />
E1.previous.next = header.previous.next = header.next<br />
<br />
（4）由上面可得：</p>
<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;">newEntry.previous.next&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;newEntry;</span></div>
<p>作用：</p>
<p>
相当于 E1.previous.next = header.next = E1<br />
<br />
其实就是，让上一个节的next指向下一个节点数据<br />
<br />
所以header.next 的下一个节点就是E1<br />
<br />
（5）E1.next.previous = header.previous = E1（这里用得巧妙）<br />
<br />
其实这个用法单从E1.next.previous= E1单这么看，很直观因为E1的下一个节点数据的上一个节点就应该是E1<br />
<br />
从上面可知，E1.next == header，为什么要把header.previous = E1呢？<br />
<br />
其实包含着一个递归在里面。<br />
<br />
如果再新增一个数据 Entry E2 ：<br />
<br />
从上面的代码可以看出，E2的实例化过程是：(其实linkedlist每次新增一个数据，都通过header传值)</p>
<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;">Entry&nbsp;E2&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Entry(data,&nbsp;header,&nbsp;header.previous);</span></div>
<p>
注意代码部分的负值。关键就是这里，实例化的时候，E2.previous = header.previous = E1<br />
简单得完成了负值过程。<br />
<br />
然后 E2.previous.next = E1.next = E2<br />
E2.next.previous = header.previous = E2 .......(接着插入下一条数据，如此递归)<br />
<br />
（6）记录链表位数<br />
<br />
<br />
涉及到了一个小小的递归算法。<br />
<br />
linkedlist记录一。完毕。。</p>
<p><br />
</p>
<img src ="http://www.blogjava.net/haha0515/aggbug/308200.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haha0515/" target="_blank">创意恒动力</a> 2010-01-04 19:23 <a href="http://www.blogjava.net/haha0515/archive/2010/01/04/308200.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tokyocabinet数据存放探秘</title><link>http://www.blogjava.net/haha0515/archive/2009/12/29/307601.html</link><dc:creator>创意恒动力</dc:creator><author>创意恒动力</author><pubDate>Tue, 29 Dec 2009 02:22:00 GMT</pubDate><guid>http://www.blogjava.net/haha0515/archive/2009/12/29/307601.html</guid><wfw:comment>http://www.blogjava.net/haha0515/comments/307601.html</wfw:comment><comments>http://www.blogjava.net/haha0515/archive/2009/12/29/307601.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haha0515/comments/commentRss/307601.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haha0515/services/trackbacks/307601.html</trackback:ping><description><![CDATA[弄了一段时间的tokyocabinet btree结构数据库。<br />
存储的时候发现，tokyocabinet sync同步时，先让数据存放在内存，然后对比同步文件和内存的数据，使数据达到一直。<br />
sync()这个tc方法易用，但不好控制。<br />
稍有不慎就会使持久化文件容量以几何级数递增。<br />
<br />
之前自己用mina框架做了一个btree的网络链接端口，起初内存一直飙升。弄了很久都不明白。<br />
开始以为是mina造成的，而且cpu占用率居高不下。<br />
<br />
后来拆分测试。发现单独mina的数据传输，内存并不高，非常低。<br />
但是tc的单独测试发现，写文件的cpu占用率特高，多线程写入的情况下，会有明显阻塞。<br />
初步了解了jvm gc的算法，如果cpu占用率搞，gc回收内存的能力会明显下降。<br />
为了解决这一点，修改了一下网络端口的框架结构。<br />
<br />
把数据接受端跟数据处理端分开：<br />
1.接受端可以接受多个socket多线程传输，而数据处理端锁定只接受从接收端的一个或不超过5个scoket传输数据。<br />
对tc的操作，单线程写入，感觉上比多线程处理流畅，特别在同步优化文件那一刻。<br />
优化文件，需要的cpu和内存都比较厉害。<br />
2.tc接受数据以后，不要马上写文本。等接受一批（100-10000）数据后，再使用同步方法。<br />
3.参照第2条，定期优化文件，这样不至于文件过大。但是数据量增大，文件虽然优化了，写入速度不会怎么改变。<br />
4.优化同步文件后，特别在数据量在不断增大的情况下。不要以为没有回收内存，其实gc已经很努力回收(长时间观察jprofiler的统计数据证明了这一点)当你向tc取数据的时候，你会发现，内存会逐级递减。<br />
<br />
<br />
经过一番调整，用jprofiler测试，自己搭建的网络框架，内存锁定在250m左右。<br />
可能到实际运行的时候，内存占用量会增加，但是只会达到一个相当的稳定值。<br />
现用于公司的队列系统，内存总量不超过600m，偶尔超过是由于同步文件造成的，等数据稳定后，内存会回到稳定值。以后再作优化，希望能把内存压制200m左右。<br />
<br />
初学nio，以此为记。<br />
<br />
<img src ="http://www.blogjava.net/haha0515/aggbug/307601.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haha0515/" target="_blank">创意恒动力</a> 2009-12-29 10:22 <a href="http://www.blogjava.net/haha0515/archive/2009/12/29/307601.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tokyocabinet中HDB和BDB引擎的存储速度比较</title><link>http://www.blogjava.net/haha0515/archive/2009/09/30/296950.html</link><dc:creator>创意恒动力</dc:creator><author>创意恒动力</author><pubDate>Tue, 29 Sep 2009 16:11:00 GMT</pubDate><guid>http://www.blogjava.net/haha0515/archive/2009/09/30/296950.html</guid><wfw:comment>http://www.blogjava.net/haha0515/comments/296950.html</wfw:comment><comments>http://www.blogjava.net/haha0515/archive/2009/09/30/296950.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haha0515/comments/commentRss/296950.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haha0515/services/trackbacks/296950.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 不同方式的比较TC引擎，有利于开发高速的数据缓存<br><br>近日比较了一下TC中，HDB和BDB的速度，挺有意思的。&nbsp;&nbsp;<a href='http://www.blogjava.net/haha0515/archive/2009/09/30/296950.html'>阅读全文</a><img src ="http://www.blogjava.net/haha0515/aggbug/296950.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haha0515/" target="_blank">创意恒动力</a> 2009-09-30 00:11 <a href="http://www.blogjava.net/haha0515/archive/2009/09/30/296950.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]老师的告白</title><link>http://www.blogjava.net/haha0515/archive/2009/09/30/296952.html</link><dc:creator>创意恒动力</dc:creator><author>创意恒动力</author><pubDate>Tue, 29 Sep 2009 16:11:00 GMT</pubDate><guid>http://www.blogjava.net/haha0515/archive/2009/09/30/296952.html</guid><wfw:comment>http://www.blogjava.net/haha0515/comments/296952.html</wfw:comment><comments>http://www.blogjava.net/haha0515/archive/2009/09/30/296952.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haha0515/comments/commentRss/296952.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haha0515/services/trackbacks/296952.html</trackback:ping><description><![CDATA[<p>一位语文老师的告白</p>
<p><a title="一位老师的告白" href="http://docs.google.com/present/view?id=ddpwddzp_10j7xb9dgj" target="_blank">http://docs.google.com/present/view?id=ddpwddzp_10j7xb9dgj</a> </p>
<p>&nbsp;</p>
<p>以前有看过，不过回味下，挺搞笑的</p>
<p>&nbsp;</p>
<p>============================</p>
<span style="font-weight: bold; color: purple;"><span><br />
<br />
文章来源:<a href="http://henry2009.javaeye.com/blog/479384">http://henry2009.javaeye.com/blog/479384</a> </span></span>
<img src ="http://www.blogjava.net/haha0515/aggbug/296952.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haha0515/" target="_blank">创意恒动力</a> 2009-09-30 00:11 <a href="http://www.blogjava.net/haha0515/archive/2009/09/30/296952.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]纯Java开源Subversion客户端-SVNKit 1.3.1发布</title><link>http://www.blogjava.net/haha0515/archive/2009/09/30/296953.html</link><dc:creator>创意恒动力</dc:creator><author>创意恒动力</author><pubDate>Tue, 29 Sep 2009 16:11:00 GMT</pubDate><guid>http://www.blogjava.net/haha0515/archive/2009/09/30/296953.html</guid><wfw:comment>http://www.blogjava.net/haha0515/comments/296953.html</wfw:comment><comments>http://www.blogjava.net/haha0515/archive/2009/09/30/296953.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haha0515/comments/commentRss/296953.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haha0515/services/trackbacks/296953.html</trackback:ping><description><![CDATA[<p>SVNKit是一个纯Java开源Subversion客户端库，SVNKit支持Java<br />
API控制和操作Subversion工作拷贝和资源，支持http，https，svn和svn+ssh连接协议等。<br />
<br />
Subversion is a leading and fast growing Open Source version control system.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SVNKit brings <a href="http://subversion.tigris.org/" target="_blank">Subversion</a>
<br />
closer to the Java world! SVNKit is a pure Java toolkit<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - it implements all Subversion features and provides APIs to work with<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Subversion working copies, access and manipulate Subversion repositories<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - everything within your Java application.<br />
<br />
通过SVNKit，用户可以很容易地操作控制Subversion。<br />
SVNKit 1.3.1发布，可以在<a href="http://svnkit.com/" target="_blank">http://svnkit.com/</a>
上下载<br />
<br />
下载地址：<br />
<a href="http://svnkit.com/download.php" target="_blank">http://svnkit.com/download.php</a>
<br />
<br />
svnkit文档地址：<br />
<a href="http://svnkit.com/documentation.html" target="_blank">http://svnkit.com/documentation.html</a>
<br />
<span style="color: #ff6600;"><br />
<em>（有了这个东东，就不用在linux下安装这个库，那个c编译包了~~~呵呵）</em>
</span>
</p>
<br />
文章来源:<a href="http://henry2009.javaeye.com/blog/474715">http://henry2009.javaeye.com/blog/474715</a>
<img src ="http://www.blogjava.net/haha0515/aggbug/296953.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haha0515/" target="_blank">创意恒动力</a> 2009-09-30 00:11 <a href="http://www.blogjava.net/haha0515/archive/2009/09/30/296953.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]对mencache和tokyocabinet缓存的一点点遐想</title><link>http://www.blogjava.net/haha0515/archive/2009/09/30/296954.html</link><dc:creator>创意恒动力</dc:creator><author>创意恒动力</author><pubDate>Tue, 29 Sep 2009 16:11:00 GMT</pubDate><guid>http://www.blogjava.net/haha0515/archive/2009/09/30/296954.html</guid><wfw:comment>http://www.blogjava.net/haha0515/comments/296954.html</wfw:comment><comments>http://www.blogjava.net/haha0515/archive/2009/09/30/296954.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haha0515/comments/commentRss/296954.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haha0515/services/trackbacks/296954.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/haha0515/archive/2009/09/30/296954.html'>阅读全文</a><img src ="http://www.blogjava.net/haha0515/aggbug/296954.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haha0515/" target="_blank">创意恒动力</a> 2009-09-30 00:11 <a href="http://www.blogjava.net/haha0515/archive/2009/09/30/296954.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sphinx tokyocabinet 轻量级搜索框架（2.0）</title><link>http://www.blogjava.net/haha0515/archive/2009/09/30/296955.html</link><dc:creator>创意恒动力</dc:creator><author>创意恒动力</author><pubDate>Tue, 29 Sep 2009 16:11:00 GMT</pubDate><guid>http://www.blogjava.net/haha0515/archive/2009/09/30/296955.html</guid><wfw:comment>http://www.blogjava.net/haha0515/comments/296955.html</wfw:comment><comments>http://www.blogjava.net/haha0515/archive/2009/09/30/296955.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haha0515/comments/commentRss/296955.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haha0515/services/trackbacks/296955.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/haha0515/archive/2009/09/30/296955.html'>阅读全文</a><img src ="http://www.blogjava.net/haha0515/aggbug/296955.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haha0515/" target="_blank">创意恒动力</a> 2009-09-30 00:11 <a href="http://www.blogjava.net/haha0515/archive/2009/09/30/296955.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sphinx tokyocabinet 轻量级搜索框架（1.0）</title><link>http://www.blogjava.net/haha0515/archive/2009/09/30/296956.html</link><dc:creator>创意恒动力</dc:creator><author>创意恒动力</author><pubDate>Tue, 29 Sep 2009 16:11:00 GMT</pubDate><guid>http://www.blogjava.net/haha0515/archive/2009/09/30/296956.html</guid><wfw:comment>http://www.blogjava.net/haha0515/comments/296956.html</wfw:comment><comments>http://www.blogjava.net/haha0515/archive/2009/09/30/296956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haha0515/comments/commentRss/296956.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haha0515/services/trackbacks/296956.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Sphinx ：Sphinx是一个基于SQL的全文检索引擎，可以结合MySQL,PostgreSQL做全文搜索，它可以提供比数据库本身更专业的搜索功能，使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口，如PHP,Python,Perl,Ruby等，同时为 MySQL也设计了一个存储引擎插件。&nbsp;&nbsp;<a href='http://www.blogjava.net/haha0515/archive/2009/09/30/296956.html'>阅读全文</a><img src ="http://www.blogjava.net/haha0515/aggbug/296956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haha0515/" target="_blank">创意恒动力</a> 2009-09-30 00:11 <a href="http://www.blogjava.net/haha0515/archive/2009/09/30/296956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>libbz2.a,libz.so导致tokyocabinet make失败问题解决方法</title><link>http://www.blogjava.net/haha0515/archive/2009/09/30/296957.html</link><dc:creator>创意恒动力</dc:creator><author>创意恒动力</author><pubDate>Tue, 29 Sep 2009 16:11:00 GMT</pubDate><guid>http://www.blogjava.net/haha0515/archive/2009/09/30/296957.html</guid><wfw:comment>http://www.blogjava.net/haha0515/comments/296957.html</wfw:comment><comments>http://www.blogjava.net/haha0515/archive/2009/09/30/296957.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/haha0515/comments/commentRss/296957.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haha0515/services/trackbacks/296957.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 近期闹得火红的小日本B＋数据库tokyocabinet(以下简称tc)，性能确实不容置疑，但是安装却老是出问题，问题都出自于一大堆的依赖错误。要搞定确实折腾！主要问题是tc要依赖bzip2，还有libbz2这个linux常规压缩工具。说是常规，但是ubuntu，opensuse常规是不会安装的。搞不懂，哪来常规。<br>也许常规是对Radhat而言的，我用5.3企业版的radhat不会出现这种麻烦事。&nbsp;&nbsp;<a href='http://www.blogjava.net/haha0515/archive/2009/09/30/296957.html'>阅读全文</a><img src ="http://www.blogjava.net/haha0515/aggbug/296957.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haha0515/" target="_blank">创意恒动力</a> 2009-09-30 00:11 <a href="http://www.blogjava.net/haha0515/archive/2009/09/30/296957.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>