﻿<?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-&lt;font face="隶书" size="6"&gt;蛟龍居&lt;/font&gt;-随笔分类-Algorithmic</title><link>http://www.blogjava.net/BlueSUN/category/19110.html</link><description>山不在高，有仙則名；水不在深，有龍則靈</description><language>zh-cn</language><lastBuildDate>Mon, 12 May 2008 10:03:30 GMT</lastBuildDate><pubDate>Mon, 12 May 2008 10:03:30 GMT</pubDate><ttl>60</ttl><item><title>一道Google算法题的解答</title><link>http://www.blogjava.net/BlueSUN/archive/2008/04/20/194370.html</link><dc:creator>山风小子</dc:creator><author>山风小子</author><pubDate>Sun, 20 Apr 2008 13:13:00 GMT</pubDate><guid>http://www.blogjava.net/BlueSUN/archive/2008/04/20/194370.html</guid><wfw:comment>http://www.blogjava.net/BlueSUN/comments/194370.html</wfw:comment><comments>http://www.blogjava.net/BlueSUN/archive/2008/04/20/194370.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueSUN/comments/commentRss/194370.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueSUN/services/trackbacks/194370.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 写一个算法生成n位编码的编码串（结果有多种，任意一种都可以接受）并且符合如下条件：相邻的两个编码之间有且只能有一位不同，并给出时间与空间复杂度<br><br>比如 2位的二进制的编码生成的编码串：00 01 11 10<br>比如 3位的二进制编码生成的编码串：001 011 111 101 100 110 010 000&nbsp;&nbsp;<a href='http://www.blogjava.net/BlueSUN/archive/2008/04/20/194370.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueSUN/aggbug/194370.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueSUN/" target="_blank">山风小子</a> 2008-04-20 21:13 <a href="http://www.blogjava.net/BlueSUN/archive/2008/04/20/194370.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创]全排列之递归算法解答</title><link>http://www.blogjava.net/BlueSUN/archive/2006/11/03/78971.html</link><dc:creator>山风小子</dc:creator><author>山风小子</author><pubDate>Fri, 03 Nov 2006 11:07:00 GMT</pubDate><guid>http://www.blogjava.net/BlueSUN/archive/2006/11/03/78971.html</guid><wfw:comment>http://www.blogjava.net/BlueSUN/comments/78971.html</wfw:comment><comments>http://www.blogjava.net/BlueSUN/archive/2006/11/03/78971.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueSUN/comments/commentRss/78971.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueSUN/services/trackbacks/78971.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 迅雷一道算法题的解答 :-) &nbsp;&nbsp;<a href='http://www.blogjava.net/BlueSUN/archive/2006/11/03/78971.html'>阅读全文</a><img src ="http://www.blogjava.net/BlueSUN/aggbug/78971.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueSUN/" target="_blank">山风小子</a> 2006-11-03 19:07 <a href="http://www.blogjava.net/BlueSUN/archive/2006/11/03/78971.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>算法优化源于人类智慧</title><link>http://www.blogjava.net/BlueSUN/archive/2006/10/14/75164.html</link><dc:creator>山风小子</dc:creator><author>山风小子</author><pubDate>Sat, 14 Oct 2006 10:05:00 GMT</pubDate><guid>http://www.blogjava.net/BlueSUN/archive/2006/10/14/75164.html</guid><wfw:comment>http://www.blogjava.net/BlueSUN/comments/75164.html</wfw:comment><comments>http://www.blogjava.net/BlueSUN/archive/2006/10/14/75164.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.blogjava.net/BlueSUN/comments/commentRss/75164.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlueSUN/services/trackbacks/75164.html</trackback:ping><description><![CDATA[       <font color="#009900"> 每个问题有很多种解法，但其中存在一种最优的算法，据我观察和思考，‘懒人’是写不出那种最优算法的，为什么呢？因为最优算法有一个很明显的特点就是算法本身集结了人类的聪明才智，让我来用一个实例来证明这个观点：</font><br /><br />问题：<br />请计算当参数为 n(n很大) 时, 1-2+3-4+5-6+7+......+n 的值<br /><br />‘懒人’解法：<br />public class Lazy {<br />  public static void main(String[] args) {<br />    int n = 10000;<br />    int result = 0;<br />    for (int i = 0, flag = 1; i &lt; n; i++) {<br />      result += flag * (i + 1);<br />      flag = -flag;<br />    }<br />    System.out.println(result);<br />  }<br />}<br /><br />‘勤人’解法：<br />public class Diligent {<br />  public static void main(String[] args) {<br />    int n = 10000;<br />    int result = 0;<br />    if (0 == n % 2) {<br />      result = -n / 2;<br />    } else {<br />      result = -n / 2 + n;  <font color="#0099cc">//由于-n / 2会舍弃小数部分，所以无需写成-(n - 1) / 2<br /></font>    }<br />    System.out.println(result);<br />  }<br />}<br /><br /><font color="#cc0000">人类的智慧为计算机担负了不少的计算量，“懒人”算法的时间复杂度为O(n)，而“勤人”算法的时间复杂度仅为O(1)，这题的最优算法出世了！<br />忠告各位喜爱编程的朋友，在解决问题之前，请可怜可怜您使用的那台精疲力尽的计算机吧，花些时间思考一下，您付出的一分一秒都会有回报的 :-)</font><img src ="http://www.blogjava.net/BlueSUN/aggbug/75164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlueSUN/" target="_blank">山风小子</a> 2006-10-14 18:05 <a href="http://www.blogjava.net/BlueSUN/archive/2006/10/14/75164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>