- 博客(5)
- 资源 (12)
- 收藏
- 关注
转载 排序算法小结
从以下几个方面来比较排序算法: 1. 算法的时间和空间复杂度 2. 排序的稳定性 3. 算法结构的复杂度 4. 参加排序的数据规模 排序的稳定性: 稳定排序方法: 插入排序、冒泡排序、二路归并排序、基数排序是稳定排序算法; 不稳定排序方法: 选择排序、谢尔排序、快速排序、堆积排序是不稳定排序算法。 算法复杂度比较:
2015-04-27 10:21:06 726
转载 C++内联函数与宏定义的区别
用内联取代宏: 1.内联函数在运行时可调试,而宏定义不可以; 2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会; 3.内联函数可以访问类的成员变量,宏定义则不能; 4.在类中声明同时定义的成员函数,自动转化为内联函数。 文章(一) 内联函数与宏定义 在C中,常用预处理语句#define来代替一个函数定义。例如: #d
2015-04-26 22:04:40 601
转载 海量数据面试题----分而治之/hash映射 + hash统计 + 堆/快速/归并排序
1、从set/map谈到hashtable/hash_map/hash_set 稍后本文第二部分中将多次提到hash_map/hash_set,下面稍稍介绍下这些容器,以作为基础准备。一般来说,STL容器分两种: 序列式容器(vector/list/deque/stack/queue/heap), 关联式容器。关联式容器又分为set(集合)和map(
2015-04-20 16:05:40 918
转载 5亿个数找中位数
找中位数最容易想到的方法就是,先对序列进行排序,取中位数,然而5亿个数要想全部读入内存需要将近2GB空间。 一种想法是采用外部排序的方法,在排序的过程中记录数据个数,找到中位数。首先采用hash() % 100,把数据分到100个文件中,然后对每个文件分别在内存中进行快速排序,再将100个小文件进行合并,并在合并过程中寻找中位数,时间复杂度是O(nlogn) 另外一种方法是,
2015-04-20 16:05:03 2798
转载 右左法则----复杂指针解析
首先看看如下一个声明: int* ( *( *fun )( int* ) )[10]; 这是一个会让初学者感到头晕目眩、感到恐惧的函数指针声明。在熟练掌握C/C++的声明语法之前,不学习一定的规则,想理解好这类复杂声明是比较困难的。 C/C++所有复杂的声明结构,都是由各种声明嵌套构成的。如何解读复杂指针声明?右左法则是一个很著名、很有效的方法。不过,右左法则其实并不是C/
2015-04-02 14:45:30 480
ISO 18000-6标准
2015-10-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人