﻿<?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>IT博客-Impossible is Nothing !-随笔分类-Data Structure</title><link>http://www.cnitblog.com/kinns/category/2245.html</link><description>

   如果我QQ上线但又没有给你发消息. 那请你原谅 因为我那时候正专心于我的事业中. 但这并不代表我没有把你放在第一位 恰恰因为我把你放在了第一位 所以才利用没有和你在一起的时间做完我该做的事. 而当我们在一起的时候. 我才能全心全意地和你在一起</description><language>zh-cn</language><lastBuildDate>Wed, 28 Sep 2011 21:24:58 GMT</lastBuildDate><pubDate>Wed, 28 Sep 2011 21:24:58 GMT</pubDate><ttl>60</ttl><item><title>杂</title><link>http://www.cnitblog.com/kinns/archive/2006/04/07/8856.html</link><dc:creator>kinns</dc:creator><author>kinns</author><pubDate>Fri, 07 Apr 2006 15:46:00 GMT</pubDate><guid>http://www.cnitblog.com/kinns/archive/2006/04/07/8856.html</guid><wfw:comment>http://www.cnitblog.com/kinns/comments/8856.html</wfw:comment><comments>http://www.cnitblog.com/kinns/archive/2006/04/07/8856.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kinns/comments/commentRss/8856.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kinns/services/trackbacks/8856.html</trackback:ping><description><![CDATA[<pre>
显示不正常.灭了.
</pre><img src ="http://www.cnitblog.com/kinns/aggbug/8856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kinns/" target="_blank">kinns</a> 2006-04-07 23:46 <a href="http://www.cnitblog.com/kinns/archive/2006/04/07/8856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分治法</title><link>http://www.cnitblog.com/kinns/archive/2006/04/04/8778.html</link><dc:creator>kinns</dc:creator><author>kinns</author><pubDate>Tue, 04 Apr 2006 13:25:00 GMT</pubDate><guid>http://www.cnitblog.com/kinns/archive/2006/04/04/8778.html</guid><wfw:comment>http://www.cnitblog.com/kinns/comments/8778.html</wfw:comment><comments>http://www.cnitblog.com/kinns/archive/2006/04/04/8778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kinns/comments/commentRss/8778.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kinns/services/trackbacks/8778.html</trackback:ping><description><![CDATA[<pre>
分治法一题.


Triomino 拼图:
  Triomino 是由棋盘上的三个邻接的方块组成L型的瓦片.我们的问题是如何用Triomino腐败一个缺少了一个方块
(可以在棋盘的任意位置)的棋盘(2^n x 2^n) .除了这个确实的方块.Triomino 应该覆盖棋盘上所有其他的方块.
而且不能有重叠.


今天刚看算法没多久. 居然就出了这么一个让人摸不着头脑的.
起初一点头绪都没有.于是和朋友一起想. 朋友的提示让我茅塞顿开.

-----------------
    #
    ##

    2x2  L
-----------------
    AA
    AD
    BDDC
    BBCC

    4x4 (三个L型2x2的组成)  L
-----------------
   ....... 

因此. 当我们拿到一个 2^n x 2^n 的时候 我们应该先找出那个空格所在的区块
(均分为4块. 必将落于一中. 没快为 2^(n-1) x 2^(n-1) 


      A | B
      --|--
      C | D

假设落于B. 则我们可以将A C D 用 2^(n-2) 的L型来实现). 然后再对B进行同样的步骤.这样分下去直到分到一个2x2的.
 最后填入一个2x2的L型便实现

</pre><img src ="http://www.cnitblog.com/kinns/aggbug/8778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kinns/" target="_blank">kinns</a> 2006-04-04 21:25 <a href="http://www.cnitblog.com/kinns/archive/2006/04/04/8778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>查找</title><link>http://www.cnitblog.com/kinns/archive/2006/04/03/8738.html</link><dc:creator>kinns</dc:creator><author>kinns</author><pubDate>Mon, 03 Apr 2006 08:04:00 GMT</pubDate><guid>http://www.cnitblog.com/kinns/archive/2006/04/03/8738.html</guid><wfw:comment>http://www.cnitblog.com/kinns/comments/8738.html</wfw:comment><comments>http://www.cnitblog.com/kinns/archive/2006/04/03/8738.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kinns/comments/commentRss/8738.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kinns/services/trackbacks/8738.html</trackback:ping><description><![CDATA[<pre>

1. 顺序查找

SequentialSearch(A[0..n-1] , K)
// 输入: n元素的数组
// 输出: n元素的数组
i <- 0
while i<n and A[i] != K do
   i <- i+1
if i<n return i
else return -1

SequentialSearch2(A[0..n-1] , K)
// 顺序查找的算法实现 用查找键值作限位器
// 输入: n元素的数组
// 键值一定能找到
A[n] <- K
i <- 0
while A[i] != K do
    i <- i+1
if i<n return i
else return -1


2. 字符串匹配


BruteForceStringMatch(T[0..n-1] , P[0...n-1])
// 输入: 一个N个字符的数组T代表一段文本 N个字符的数组P代表一个模式
// 输出: 找到这返回第一个匹配子串出现的位置 没找到返回-1

for i <- 0 to n-m do
    j <- 0
    while j<m and P[j] = T[i+j] do
       j <- j+1
    if j = m return i

return -1

</pre><img src ="http://www.cnitblog.com/kinns/aggbug/8738.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kinns/" target="_blank">kinns</a> 2006-04-03 16:04 <a href="http://www.cnitblog.com/kinns/archive/2006/04/03/8738.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>排序</title><link>http://www.cnitblog.com/kinns/archive/2006/04/03/8719.html</link><dc:creator>kinns</dc:creator><author>kinns</author><pubDate>Mon, 03 Apr 2006 07:51:00 GMT</pubDate><guid>http://www.cnitblog.com/kinns/archive/2006/04/03/8719.html</guid><wfw:comment>http://www.cnitblog.com/kinns/comments/8719.html</wfw:comment><comments>http://www.cnitblog.com/kinns/archive/2006/04/03/8719.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kinns/comments/commentRss/8719.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kinns/services/trackbacks/8719.html</trackback:ping><description><![CDATA[<pre>

1.选择排序.

SelectionSort(A[0 1... n-1])
// 应用选择排序对给定的数组排序
// 输入: 一个可排序的数组A[0 1...n-1]
// 输出: 非降序排列的数组A[0..n-1]
for i <- 0 to n-2 do
    min <- i
    for j <- i+1 to n-1 do
        if A[j]<A[min] min <- j
    swap A[i] and A[min]


2.冒泡排序

BubbleSort(A[0...n-1])
// 应用冒泡排序对数组A[0...n-1]排序
// 输入: 一个可排序数组A[0..n-1]
// 输出: 非降序数组
for i <- 0 to n-2 do
   for j <- 0 to n-2-i do
      if A[j+1]<A[j] swap A[j] and A[j+1]

</pre><img src ="http://www.cnitblog.com/kinns/aggbug/8719.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kinns/" target="_blank">kinns</a> 2006-04-03 15:51 <a href="http://www.cnitblog.com/kinns/archive/2006/04/03/8719.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>由一个问题想到的.</title><link>http://www.cnitblog.com/kinns/archive/2006/03/30/8319.html</link><dc:creator>kinns</dc:creator><author>kinns</author><pubDate>Thu, 30 Mar 2006 10:10:00 GMT</pubDate><guid>http://www.cnitblog.com/kinns/archive/2006/03/30/8319.html</guid><wfw:comment>http://www.cnitblog.com/kinns/comments/8319.html</wfw:comment><comments>http://www.cnitblog.com/kinns/archive/2006/03/30/8319.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kinns/comments/commentRss/8319.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kinns/services/trackbacks/8319.html</trackback:ping><description><![CDATA[<pre>

问题:

在一次比赛中.
1.你被第二名超过了. 你是第几名?
2.你超过了第二名.你是第几名?
3.你被倒数第二名超过了. 你是倒数第几名？
4.你超过了倒数第二名. 你是第几名?

初听起来这问题挺绕口的. 回答起来有时还真得好好想想.
但回想起来这一过程.. 不正和我们程序代码由关么?

1. 你被第二名超过了. 你是第几名?
$you => $second.
2.你超过了第二名. 你是第几名?
$you <= $second
3.你被倒数第二名超过了.你是倒数第几名?
$you => $secondlast
4.你超过了倒数第二名.你是第几名?
$you <= $secondlast


很有味道.

</pre><img src ="http://www.cnitblog.com/kinns/aggbug/8319.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kinns/" target="_blank">kinns</a> 2006-03-30 18:10 <a href="http://www.cnitblog.com/kinns/archive/2006/03/30/8319.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Search</title><link>http://www.cnitblog.com/kinns/archive/2006/03/28/8195.html</link><dc:creator>kinns</dc:creator><author>kinns</author><pubDate>Tue, 28 Mar 2006 12:59:00 GMT</pubDate><guid>http://www.cnitblog.com/kinns/archive/2006/03/28/8195.html</guid><wfw:comment>http://www.cnitblog.com/kinns/comments/8195.html</wfw:comment><comments>http://www.cnitblog.com/kinns/archive/2006/03/28/8195.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kinns/comments/commentRss/8195.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kinns/services/trackbacks/8195.html</trackback:ping><description><![CDATA[<pre>
1.Binary Search
/*
Preconditions: 
   If size>0 , the first through first+size-1 must be valid indexes for the 
array a. Also , starting at a[first] , the next size elements are sorted in 
increasing order form small to large.
*/
public static int search(int[] a , int first , int size , int target)
{
    int middle;
    if(size <= 0)
       return -1;
    else{
       middle = first + size/2;
       if(target == a[middle])
          return search(a, first , size/2 , target);
       else
          return search(a , middle+1 , (size-1)/2 , target);
    }
}
worst-case runningtime: O(logN)
The binary search algorthm is very efficient. For example suppose the constant c is 10. 
Then an array with a thousand elemenets has a running time of 1
</pre><img src ="http://www.cnitblog.com/kinns/aggbug/8195.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kinns/" target="_blank">kinns</a> 2006-03-28 20:59 <a href="http://www.cnitblog.com/kinns/archive/2006/03/28/8195.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>语言和知识</title><link>http://www.cnitblog.com/kinns/archive/2006/03/27/8127.html</link><dc:creator>kinns</dc:creator><author>kinns</author><pubDate>Mon, 27 Mar 2006 05:52:00 GMT</pubDate><guid>http://www.cnitblog.com/kinns/archive/2006/03/27/8127.html</guid><wfw:comment>http://www.cnitblog.com/kinns/comments/8127.html</wfw:comment><comments>http://www.cnitblog.com/kinns/archive/2006/03/27/8127.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kinns/comments/commentRss/8127.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kinns/services/trackbacks/8127.html</trackback:ping><description><![CDATA[网上经常有人在问一个相同的问题: C++和Java哪个更好. <br />
看了N变了. 依据还是有人在问.不过也难怪. 谁叫现在这语言层出不穷呢?<br />
就比如中文和英文. 甚至德文. 到底哪种语言更好? 每人会问这样的问题. <br />
不过到编程里面就不一样了. 因为我们总是希望用一门最好的语言. <br />
我们搞控制的人都知道: 没有什么东西是完美的.<br />
同样. 也没有哪种编程语言是最好的 只有说在解决某一问题时是最适合的.<br />
<br />
-------------------------------------------------------------------------<br />
<br />
语言是人想法的一种表述.<br />
比如当你想着要吃饭的时候. 你可能会说: 你好,妈妈. 我有点饿了.<br />
或者你也可以另外表述: 你好,妈妈. 我们什么时候开饭?<br />
当然还有其它许多表述方法.<br />
想法是人脑活动的体现<br />
当你感到肚子饿得时候. 你可能会想: 我得叫老妈烧饭了.<br />
当然也可以这样想: 我得去问问老妈什么时候开饭.<br />
但是 不论哪种想法. 其目的都是一样的: 那就是如何解决肚子饿这一问题.<br />
<br />
因此. 语言是个人想法的表述. 而想法又是针对某一目的而产生的人脑决策<br />
<br />
知识是我们人脑说存储的一些信息的有序组合及创造性组合.<br />
它不同于语言. 语言有一定的语法规则. 而知识却因人而异.<br />
<br />
我们掌握一门语言 有一定的规则.<br />
而我们想得到某些知识. 却是需要我们人脑的学习新和创造性来实现的.<br />
<br />
就比如我们上学一样: 我们学英语. 为的是掌握英语这一语言. 也就是英文的一种表述. 最根本的就是学会懂得英文这东东<br />
而我们学数学. 不光光是掌握那几个符号表述. 不是简单的一些个等式 描述. 它需要我们人脑的创造性来实现知识的有序组合.<br />
以解决在我们所学知识范围下所能解决的问题.<br />
语言是死的.<br />
知识是活的.<br />
我们学一门语言为的是如何用语言来描述我们的问题. 最终将问题解决.<br />
而我们描述一个问题. 需要我们知道问题的所在. 这就需要我们的知识储备.<br />
<br />
在这么一个语言膨胀的年代. 没有人可以说哪门语言如何如何的好.<br />
虽然语言也有其简洁. 易学之分. 但其最终目的是解决问题.<br />
你可以用中文描述一个问题.当然也可以用英文来描述. 甚至你可以去到爱斯基摩. 学那里的语言.然后回过头来描述你的问题.当其本质就是描述.<br />
而知识却不同. 你用语言只能是描述某一问题或者描述如何解决某一问题.<br />
但其来源却是充足的知识储备. 缺乏了一定的知识.你只能将某一问题表面描述. 而无法知晓其本质如何.<br />
可见. 语言只是一种描述方式. 而知识才是我们的追求.<br /><img src ="http://www.cnitblog.com/kinns/aggbug/8127.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kinns/" target="_blank">kinns</a> 2006-03-27 13:52 <a href="http://www.cnitblog.com/kinns/archive/2006/03/27/8127.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>