算法
文章平均质量分 81
wonderhowwonderwhy
这个作者很懒,什么都没留下…
展开
-
创新工场2013年笔试题(三)丑陋数
方法一,遍历判断是否为丑陋数/*判断该数是否丑陋数*/bool uglynumber(int number){ if (number<2) return 0; while(number%2==0)number/=2; while(number%3==0)number/=3; while(number%5==0)number/=5; if(number==1) return 1原创 2012-09-27 01:02:08 · 2049 阅读 · 0 评论 -
编程之美_2.4 “1的数目”
扩展问题:二进制数N,从1开始,到N的所有二进制数,然后数下其中出现的所有“1”的个数。例如:f(1)=1f(10)=2 (因为01,10共有2个1)f(11)=100 (因为01,10,11共有4个1)思路:以10110为例,考虑最高位为0时共有几个1,因为后面4位中1和0出现的概率是相等的,也即1在每个位上出现的概率为(2^4)/2=8,最高位为0时,所有1的个数为4*8=原创 2012-09-16 16:39:39 · 1118 阅读 · 0 评论 -
编程之美2.5 “寻找最大K个数”
解法二用快速排序划分的方法#include #include using namespace std;const int K=5;int Partition(int data[],int first,int end);void K_Qsort(int data[],int first,int end,int dst[]);void swap(int &a,int &b);void原创 2012-09-17 09:58:40 · 2223 阅读 · 0 评论 -
KMP算法 字符匹配
KMP是比较高效的一种字符匹配算法在str中查找是否存在pattern基本思想:1. pattern的前i-1个与str[j-i+1]至s[j-1]字符匹配时,但pattern[i]与str[j]不匹配,用pattern[next[i]]与str[j]比较,无需从str[j-i+2]开始遍历。因为pattern的字符串本身可能有重复子串,这样就可以省略一些比较步骤。原创 2012-10-08 17:40:27 · 1438 阅读 · 0 评论 -
对于不支持浮点型的10log10运算实现
#include #include #include unsigned int uint10log10(unsigned int value);void main(int argc,char* argv[]){ if(argc<2) { printf("Please usage:10log10.exe value\n"); return; }else{ int i =原创 2013-01-26 21:42:30 · 2314 阅读 · 0 评论 -
Queue depth 增益(SSD/flash,etc)
SATA/PCIE/UFS 都支持Q的操作,即一次性发多个R/W命令。它的performance 增益并不是简单的乘以queue depth。每个queue落到die上是随机的,因此需要通过概率来统计这个值。原创 2015-10-25 22:55:39 · 1313 阅读 · 0 评论