忠忠的新百宝袋

做人要厚道

Archive for August, 2007

Paint.Net, 一个很有意思的工具

Posted by Kai on 25th August 2007

今天闲着无聊下载了Paint.Net3.10final 来使用。C#做的程序,能达到这个效率我很惊讶。然后去了Paint.Net的论坛,看到一个很酷的教怎么做看起来像爆炸的星球的东西。跟着做了一个,那是相当的酷啊。

Paint.Net是开源的,我把源码下下来,但是发现不知道从那里看起。14,000行代码,我从哪里开始看啊,一点头绪都没有。

这个工具作为Paint替代品是否合适我有点怀疑,因为我用mspaint主要是因为它快,一般我截屏之后会用mspaint选取我需要的地方。如果是大型的处理,我当然会用ps。

贴上我刚刚用新手法做的头像一个。Paint。Net论坛上看来的。

spe_hed

Posted in C sharp, tech | No Comments »

看完了一些C++的书,C++基本复习了一遍

Posted by Kai on 21st August 2007

从8.1号开始看Exceptional C++ Style, 其后看 Effective C++, 接下来Exceptional C++, 再看C++ Primer, 今天把Primer看完了,发现了C++里面原来我还有很多地方不知道的。我大一时候学的真的实在是太基础太表面了。这是我的问题,学校的安排也有问题,教材完全是入门型。对与科班来说是远远不够的。不过我也仅仅是看完,很多示例没有时间做一遍。

9月份有空想看传说中的Inside C++ Object Model,如果图书馆不买的话就要自己掏钱去买了。上一次实习生招聘会的时候,直接被人家问看没看过Inside C++,我说没,他说这么经典的书都没看过,切。

昨天做glut中想插入MFC的代码的,结果出问题了。glut原来是个简化版的GUI库,我过多的期望glut了。想实现的功能,还得用MFC来做。

Posted in c++, tech | No Comments »

《新不了情》完整版

Posted by Kai on 17th August 2007

前天晚上听着mp3把一段完整的曲子用笛子写了下来。录出来感觉还有几处生硬,可能有1个小节我谱错了。

http://kezhong.iblog.com/get/6620/endless%20love.mp3

右击另存为,放到本地后再打开。iblog不支持流媒体。

Posted in music, personal | No Comments »

用笛子吹《新不了情》

Posted by Kai on 15th August 2007

昨天看书看的头痛,于是回来吹笛子。没有谱子,凭感觉自己写的,后来发现有3个音写错了。今天做成mp3,放上来炫耀一下,lol

http://kezhong.iblog.com/get/6620/flute.mp3

有一部分是用cooledit加工了一下的,所以听起来比较圆润。

需要先下载才能播放。

Posted in personal | No Comments »

SURPRISE!在循环内部声明变量比在外部声明快

Posted by Kai on 15th August 2007

比如下面这个代码:

1) for(int i = 0 ; i < k ; ++i)
       {
           Matrix temp (ma1 + ma2);

  2)Matrix temp; 
       for(int i = 0 ; i < k ; ++i)
       {
             temp = ma1 + ma2;

我以前一直以为2更加高效,所以一直用第二种形式。今天我才知道,原来第一种才更加高效。惊奇吧,一方面,第一种程序里没有赋值操作,只有拷贝构造函数,第二种程序里有赋值操作。而赋值操作总是比初始化要慢的。另一方面,第一种程序的局部性更好,对缓存的利用率更佳。

实验的结果就是,第一种写法要快上10%.这真是个大大的surprise.

Posted in c++, tech | No Comments »

比冬天吃冰淇凌还酷的C++模板元编程

Posted by Kai on 5th August 2007

昨天在《effective C++》上看到的例子。

template<int Factor>
struct Factorial
{
enum { value = Factorial<Factor - 1>::value * Factor };
};
template<>
struct Factorial<0>
{
enum { value = 1 };
};

int main()
{
cout<<Factorial<5>::value <<endl;
system("pause");
  return 1;
}

输出结果为:120

这实在是太酷了!模板还可以这么用,真是变态到一定程度了。酷毙了,爽歪了:》

Posted in c++, tech | No Comments »

BO的Tshirt收到

Posted by Kai on 5th August 2007

今天上午9点26分,睡梦中的我被聒噪的手机叫醒,一个本地号码温柔的声音问我是不是还在学校,朦胧中我说是,心中期待有什么事件的发生。她说来南门取快递。

Okay。驱车到南门,看到一个泡沫包裹。以前微软寄Tshirt的时候也是这种包装。于是想微软为什么要再给我寄件Tshirt,莫非有夏装?还是ImagineCup还有幸运奖?lol

撕开看,果然是Tshirt,正面清楚的写着“Business Objext”。黑黑的,一点都不好看。最让我失望的,就是衣服的尺寸竟然是“XXXL”,我可以用来当浴袍了。

下学期BO来学校开宣讲会的时候我要顺便问问有没有小号的Tshirt可以换。

因为我参加了BO的中文名网上征集活动,所以就收到了这个Tshirt。所以虽然没法穿,还是可以收藏滴。

Posted in personal | No Comments »

关于排序算法

Posted by Kai on 1st August 2007

我知道的排序算法有8种:冒泡,选择,插入,希尔,快速,堆,归并,基数。其中快速排序可以用其他排序优化,在串比较短的时候,归并排序需要比较大的空间,堆排序程序比较复杂。

昨天我把所有排序算法实现了一遍,并放在一起比较速度,得到的结果很令我惊讶。

image

首先,选择排序比冒泡排序和插入排序,希尔排序都要快,是O(n^2)里面最快的。

其次,堆排序在debug模式是O(nlogn)里面最慢的,其次就是快速排序最慢(与快速排序的名字很不相称的结果)。

第三,归并排序,是最快的。在Release模式,基数排序和归并排序一样快(仅针对我当前的测试数据,不超过1000大小的数字,1000到250万长度的序列)。

其中我不明白的就是,为什么基数排序可以被优化的那么强烈,为什么快速排序不是最快的,反而归并最快。

Posted in c++, tech | No Comments »

 
FireStats icon Powered by FireStats