2010年4月8日

摘要: Problem D:【算法】:排列的字典序问题 Time Limit:2000MS Memory Limit:65536K Total Submit:200 Accepted:66 Description n个元素{1,2,..., n }有n!个不同的排列。将这n!个排列按字典序排列,并编号为0,1,…,n!-1。每个排列的编号为其字典序值。例如,当n=3时,6 个不同排列的字典序值如下: 任... 阅读全文
posted @ 2010-04-08 22:26 janqii 阅读(2668) 评论(0) 推荐(0)
摘要: 1、随机排列数组 方法1:给每个元素A[i]随机分配一个优先级p[i],然后按照优先级对数组A进行排序。例如初始A=<1,2,3,4>而且随机得到的优先级数组P=<36,3,97,19>,则得出随即数组B=<2,4,1,3>。这个过程称为PERMUTE_BY_SORTING。时间复杂度为O(nlgn) 方法2:原地排列给定数列。在第i次迭代时,元素A[i]是从元... 阅读全文
posted @ 2010-04-08 22:18 janqii 阅读(459) 评论(0) 推荐(0)

2010年4月3日

摘要: 如果使用概率算法的话,虽然速度较快,但会有一定的误差,而且这种误差还不稳定。 考虑使用确定算法,一般来讲,单词数量越多,第n个需要进行比较的单词操作时间越长。 今天在bbs上看到一种字典序的方法,每个单词与已经存在的单词的比较的时间花费只和自身的长度有关。也就是这样做得: 单词中的第i(0<i<n+1)位字母有26(对应26个英文字母)个预置位置,其(ASII-'a')值为其占有的位置... 阅读全文
posted @ 2010-04-03 23:38 janqii 阅读(684) 评论(0) 推荐(0)
摘要: unsigned int SDBMHash(char *str) { unsigned int hash = 0; while (*str) { // equivalent to: hash = 65599*hash + (*str++); hash = (*str++) + (hash << 6) + (hash << 16) - hash; } re... 阅读全文
posted @ 2010-04-03 21:51 janqii 阅读(367) 评论(0) 推荐(0)
摘要: 原来ABC还可以译作“原理,原则”来着,呵呵。。。偶然发现。 ----------------------------------------- 这两天在读《设计模式精解》(其实该叫做“设计模式入门导读”),设计模式是从建筑学借来的一个词汇,是指“在某一个情景下的问题解决方案”。 在软件设计中,“四人团”总结提炼出23种模式(设计模式入门导读只列举了10种),分为结构型(Facade,Adap... 阅读全文
posted @ 2010-04-03 13:25 janqii 阅读(122) 评论(0) 推荐(0)

导航