- 博客(16)
- 收藏
- 关注
转载 Google File System(中文翻译)
原文地址:http://blog.youkuaiyun.com/xuleicsu/article/details/526386Google文件系统 GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。 1、设计概览 (1)设计想定 GFS与过去的分布式文件系统有很
2013-09-21 21:50:46
684
原创 创新工场笔试题
/* 给定一组整数1~n^2;按规则填入到n*n的二维数组中 例如:n = 4 1 3 4 10 2 5 9 11 6 8 12 15 7 13 14 16*/void function(int **arr,int len,int *val){ int i,j,k,m,n; int flag = 1; arr[0][0] = val[0]; arr[len-1
2013-09-16 22:18:58
632
原创 两个字符串的最长公共子串
例如str1:=“abcd”;str2 = “bcde”;定义一个二维数组啊arr[4[4];a bc db 0 1 0 0c 0 0 1 0d 0 0 0 0e 0 0 0 0字符串1,2若有相同的字符,对应的数组设置为一,对角线连续为1,对应的为公共子串,找出最长的即可。void lSubstrin
2013-09-15 16:07:01
723
原创 计算该表达式值
/*问题描述:输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值注1、表达式只含+,-,*,/四则运算符,不含括号2、表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况3、要考虑加减乘除按通常四则运算规定的计算优先级4、除法用整数除法,即仅保留除法运算结果的整数部分。比如8/3=2。输入表达式保证无0作为除数情况发生5、输入字符串一定是符合题意合
2013-09-14 19:17:12
604
原创 自动分离出各个子串,并使用’,’将其分隔
/* 通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。 请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’ 并将子串存储。 如果输入“abc def gh i d”,结果将是abc,def,gh,i,d, 要求实现函数: void DivideString(const char *InputStr
2013-09-14 19:12:55
731
原创 大整数加法
/* 两个超长正整数的加法 描述: 请设计一个算法完成两个超长正整数的加法,两个加数的长度均小于128 运行时间限制: 无限制 内存限制: 无限制 输入: 正整数+空格+正整数 输出: 正整数 样例输入: 1234567890987654 888888888888888 样例输出: 2123456779876542 答案提示: [pre]编写一个main函数实现该功能算法。*
2013-09-14 19:10:06
728
原创 进程间的通信-消息队列
1.创建或打开一个消息队列:int msgget(key_t key,int flag);//#include成功则返回消息队列的id,否则返回-1;key是消息队列的外部名称,标识符是队列的内部名称.2.每个消息队列都有一个msqid_ds结构与其相关,该结构规定了队列的当前状态。struct msqid_ds {struct ipc_perm msg_perm;
2013-08-14 20:07:33
437
原创 求大数的最大公约数的最高效方法
求大数x,y的最大公约数,用(x,y)表示x,y的最大公约数。若x,y都为偶数,则(x,y)=2*(x>>1,y>>1);//>>1表示右移一位若x为偶数,y为奇数,则(x,y)=(x>>1,y);若y为偶数,x为奇数,则(x,y)=(x,y>>1);若x,y都为奇数,则(x,y) = (y,x-y)。//x>y时时间复杂度为O(log2(max(x,y)))。int6
2013-06-30 22:03:32
927
原创 找出N个浮点数中最大的k个不同的浮点数
N个浮点数中,有相同的浮点数,找出其中最大的k个不同的浮点数; 用容量为k的最小堆存储最大的k个不同的浮点数,堆顶就是k个中最小的浮点数,遍历N个数,与堆顶元素比较大小,若比堆顶元素大,则与之交换,调整最小堆。void Heap(float heap[],int i,int size) { int l,r,mix; float temp; l
2013-06-16 22:02:12
1143
原创 判断N是否为2的方幂
编程之美相关题目: 给定整数n,判断它是否为2的方幂. 若一个数是二的方幂,则该数的二进制表示1的个数为1.若一个数1的个数为1,则n&(n-1)==0
2013-06-16 16:34:43
1647
原创 二进制数a,b有多少位不同.
编程之美上扩展问题: 给定两个正整数(二进制表示形式)a、b,问把a变成b需要改变多少位,也就是说,整数a,b的二进制中有多少位是不同的。 对于这个问题,先把a,b进行异或运算,结果是相通位为0,不同位1.之后直接求结果的1的个数。本题方法简单,求一的个数有多种解决方案,这里只讲一种我最喜欢的一种。typedef unsigned char BYTE;//求二进制数
2013-06-16 15:57:15
1727
原创 二分插入排序
//二分插入排序void Binary_insert_sort(int arr[],int n){ int i,j,r,low,high,mid; for(i = 1;i < n; i++) { r = arr[i]; low = 0,high = i-1; while(low <= high) { mid = (low+high)/2; if(r > arr[
2013-06-03 21:51:22
424
原创 简单选择排序
//选择排序//第i趟循环找出第i小的数据并与arr[i-1]交换数据void select_sort(int arr[],int n){ int i,j,k,temp; for(i = 0;i<n;i++) { k = i; for(j = i+1;j<n;j++) if(arr[j] < arr[k]) k = j; if(i != k) {
2013-06-02 15:12:10
364
原创 合并排序
//合并排序int num = 0;void Merge(int arr[],int Tarr[],int s,int m,int e){ num++; int i = s,j = m+1,k = s,x; while(i<=m&&j<=e) { if(arr[i] < arr[j]) Tarr[k++] = arr[i
2013-06-02 14:19:19
444
原创 快速排序
//快速排序int quickSort(int arr[],int s,int e){ int i=s,j=e; int R; R = arr[s]; int temp=0; while(i<=j) { while(arr[i]<=R)i++; while(arr[j]>R)j--; if(i<j
2013-06-02 14:17:50
347
原创 堆排序
//堆排序void Heap(int heap[],int i,int size){ int l,r,temp,mix; l = 2*i; r = 2*i+1; if(l<size&&heap[l-1]<heap[i-1]) mix = l; else mix = i; if(r<size&&heap
2013-06-02 14:16:22
422
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人