今天下午将Thrift定义的格式生成Java,折腾了3个小时,在依赖包齐全的前提下,死活出一堆编译错误。
最后开始翻代码,终于发现了原因:index是Java接口内部保留字,请不要用它做任何函数名、结构体、变量名……[......]
今天下午将Thrift定义的格式生成Java,折腾了3个小时,在依赖包齐全的前提下,死活出一堆编译错误。
最后开始翻代码,终于发现了原因:index是Java接口内部保留字,请不要用它做任何函数名、结构体、变量名……[......]
一行就能搞定,输出32或者64
$ getconf LONG_BIT
$ 64
用在Makefile里非常给力……
OS = $(shell getconf LONG_BIT)[......]
多路归并是外部排序(External Sort)的基础,实现也比较简单,和最简单的归并排序中的二路归并是基本一样的,只不过路数是浮动的k。
(1)假设有K路数据流,流内部是有序的,且流间同为升序或降序
(2)首先读取每个流的第一个数,如果已经EOF,pass
(3)将有效的k(k可能小于K)个数比较,选出最小的那路mink,输出,读取mink的下一个
(4)直到所有K路都EOF
代码如下:
/*
* main.c
*
* Created on: 20[......]
对于含有n个元素的集合C,我们先构造一个Hash函数,让n映射到b个桶内,当选择合理时,速度会很快,时间复杂度O(1)。
完美哈希函数:不会产生冲突,是存在的。
对于>=1个值映射到同一个桶的情况下,就会发生碰撞。处理方法:
开放定址,分两类:
顺序查找也叫线性查找,是最简单的查找算法。穷举法遍历每个元素,查找是否包含元素t。
平均、最坏性能O(N)
#include <stdio.h>
typedef int TYPE;
int search(TYPE* arr, int n, TYPE t)
{
int i=0;
for(i=0; i<n; i++)
{
if(arr[i]==t)
{
re[......]