- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 常见排序算法
常见排序:1、直接插入排序 在给定数组中,拿出一个数M,与前面的数相比较,如果M大于前面的数,位置不变,如果小于前面的数,就依次比较,将大于M的数依次往后挪,找到M的正确排序的位置。 2、希尔排序 希尔排序是1959 年由D.L.Shell 提出来的,相对直接排序有较大的改进。希尔排序又叫缩小增量排序 基本思想: 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个
2017-11-23 20:27:36 298
原创 大数据问题面试题
1、给一个超过100G大小的 log file,log中存着IP地址,设计算法找出出现次数最多的IP地址? 由于超过100G,那必须对文件进行切分。 (1)切分,可以切成100份,每份有1G,那哈希表的大小就是100,利用字符串哈希算法将字符串IP转换成整型 (2)过哈希切分,同一个ip就会分割到同一个文件。 (3)是依次将这100个文件读入内存中,统计ip出现的次数,依次进行比较,
2017-11-18 23:43:21 731
原创 malloc/free与new/delete
malloc/free与new/delete不同点:操作对象有所不同。 malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象消亡之前要自动执行析构函数。 由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行
2017-11-18 22:50:16 162
原创 static的作用解析
在C语言中static的作用如下第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。第二、static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。第三、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量存
2017-11-18 13:26:26 192
原创 B树、B+树、B*树
B+树B+树的特点与B树的区别内部节点中,关键字的个数与其子树的个数相同,不像B树种,子树的个数总比关键字个数多1个所有指向文件的关键字及其指针都在叶子节点中,不像B树,有的指向文件的关键字是在内部节点中。换句话说,B+树中,内部节点仅仅起到索引的作用,在搜索过程中,如果查询和内部节点的关键字一致,那么搜索过程不停止,而是继续向下搜索这个分支B+树的分裂:当一个结点满时,分配一个新的结点,并
2017-11-18 13:14:50 236
原创 解析c++中函数重载的实现原理
1.剖析C++是如何实现重载的? 2.解析面试题:在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明? 1.函数重载的实现原理函数重载的定义:当两个及两个以上函数共用一个函数名,但是形参个数或者类型不同,编译器根据实参与形参的类型及个数的最佳匹配,自动确定调用那一个函数。也就是说,在同一作用域,一组函数名相同,参数列表不同(个数和类型),返回类型可同,
2017-11-12 12:05:13 3267
转载 常见面试题
1.在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?答:首先,extern是C/C++语言中表明函数和全局变量作用范围的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。extern "C"是连接申明(linkage declaration),被
2017-11-12 11:57:13 404
原创 指针和引用的区别
指针和引用的区别引用 引用是一个对象的别名,主要用于函数参数和返回值类型,引用必须初始化,引用只能在初始化的时候引用一次,不能改变为再引用其他的变量。 作用: 【值传递】如果形参为非引用的传值方式,则生成局部临时变量接收实参的值 【引用传递】如果形参为引用类型,则形参是实参的别名 【指针传递】做返回值int a = 10;int &b = a;2.const引用 co
2017-11-10 11:50:43 194
UNIX环境高级编程
2017-11-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人