自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

转载 海量数据面试题目

1、有1亿个浮点数,请找出其中对大的10000个。提示:假设每个浮点数占4个字节,1亿个浮点数就要站到相当大的空间,因此不能一次将全部读入内存进行排序。       可以发现如果一次读入那么机器的内存肯定是受不了的,因此我们只有想其他方法解决,解决方式为了高效还是得符合一定的该概率解决,结果并不一定准确,但是应该可以作对大部分的数据。(1)我们可以把1亿个浮点数分组为100W个一组,这样就

2014-03-06 10:01:01 666

转载 C中的volatile用法

volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatile int i=10; int j = i; ... int k = i

2014-03-05 14:42:46 553

转载 内联函数和宏的区别(经典)

(1)宏使用一个字符串来代替一个表达式代码或函数调用代码;编译之前,预处理器会使用这个宏字符串所代表的表达式代码或函数调用代码来替换所有出现的宏字符串。这样,用宏表示的函数调用代码就不用另外开辟函数栈,不用保护和回复函数调用现场,从而提高了代码的执行效率;调用宏比调用一个函数更有效;但是调用宏的缺点:由于宏在预处理时使用的是宏字符串替换,所以,编译器在编译的时候,不知道宏所代表的的代码语法

2014-03-05 10:48:20 1084 1

转载 堆 和 栈的 区别(全面 经典)

此文章虽然是面向C/C++程序员写得,但是对咱们Java程序员还是很有帮助的。 堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序

2014-03-05 10:11:31 599

转载 局部变量、全局变量和静态变量的含义和区别

(1)局部变量       在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外时不能使用这些变量的,它们称为局部变量.   1.主函数main中定义的变量也只在主函数中有效,而不因为在主函数中定义而在整个文件或程序中有效.   2.不同函数中可以使用名字相同的变量,它们代表不同的对象,互不干扰.   3.形式参数也使局部变量

2014-03-05 09:25:08 12640

转载 死锁 —— 银行家算法

死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象:死锁。虽然进程在运行过程中,可能发生死锁,但死

2014-03-04 09:35:28 1777

原创 子网划分题目

熟记2的幂:2的0次方到9次方的值分别为:1,2,4,8,16,32,64,128,256和512 IP地址的格式是(32bit) =  net-id   + host-idA类: IP(32bit) = net-id(8bit)  + host-id(24bit)通式是:IP= X.0 . 0 . 0    后面的0是主机号B类:IP(32bit)= net-id(1

2014-03-04 09:20:06 2335

转载 SQL JOIN

SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。Join 和 Key有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情

2014-03-04 09:10:58 456

转载 哈希(hash)表冲突

哈希冲突为提高hash表查找性能,除了考虑选择合适的hash表表长和完美的hash函数外,还必须考虑hash表处理冲突的能力。当hash函数对两个不同的数据项产生了相同的hash值时,冲突就产生了。对于冲突的处理,通常采用的方法可以分为三类:(1)线性再散列法,简单的按顺序遍历hash表,寻找下一个可用的槽;(2)非线性再散列法,计算一个新的hash值;(3)外

2014-03-04 08:49:13 852

原创 希尔排序,基数排序,归并排序

希尔排序:将无序数组分割为若干个子序列,子序列不是逐段分割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小的增量,再将数组分割为多个子序列进行排序......最后选择增量为1,即使用直接插入排序,使最终数组成为有序。(希尔排序可以作为插入排序的一种。)不稳定的排序算法,时间复杂度O(n^1.5),最好时间复杂度O(n),最坏时间复杂度O(n^2),辅助内存O

2014-03-03 16:31:38 639

原创 进程调度算法

无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数,这将导致它们互相争夺处理机。另外,系统进行也同样需要使用处理机,这就要求进行调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某个进行,以使之执行。常见的进行调度算法有:先到先服务调度算法,短作业优先调度算法,优先权调度算法和时间片轮转算法。先到先服务:一种最简单的调度算法,既可以用于作业调度,也可以用于进程调度。FC

2014-03-03 14:42:20 650

原创 快速排序算法实现

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快

2014-03-02 15:53:52 556

原创 用两个堆栈实现队列

主要问题:使用两个堆栈实现队列的插入与删除。基本思路:设两个堆栈为s1与s2,s1用于存放新插入的元素,队列的尾部;当要删除元素的时候,需要删除队列的头部元素,如果s2中没有元素,那么需要将s1中的元素依次弹出并压入到s2中;如果s2中有元素,那么直接弹出s2头部的元素就是队列尾部的元素。(因为元素入栈s1时,是从前向后,从s1弹出来,压入s2时,从后向前压入,那么从s2依次弹出的就是元素进入

2014-03-02 14:05:52 651

原创 根据前序与后序遍历构建二叉树,并以后序遍历结果输出

问题描述:给定一个二叉树的前序遍历序列和后序遍历序列,构建二叉树,然后输出二叉树的后序遍历结果。代码如下:#include using namespace std;struct BinaryTreeNode{ int value; BinaryTreeNode *leftBinaryTreeNode; BinaryTreeNode *rightBinaryTreeNode;}

2014-03-01 18:54:32 589

原创 双向链表的创建,添加与删除

问题描述:1.生成双向链表:根据给定的数组元素,生成双向链表,并返回双向链表的头结点。    2.双向链表尾部添加元素:给定一个元素,在双向链表的尾部添加一个新的元素。    3.移除元素:给定一个元素,删除双向链表中与之值相等的节点。注意事项:链表为空(添加);链表仅有一个头结点(删除)。代码如下:#include using namespace std

2014-02-28 14:00:56 845

原创 链表 生成链表 链表尾部添加元素 移出元素 反序从尾到头打印链表

问题描述:1.生成链表:根据给定的数组元素,生成链表,并返回链表的头结点。    2.链表尾部添加元素:给定一个元素,在链表的尾部添加一个新的元素。    3.移除元素:给定一个元素,删除链表中与之值相等的节点。    4.反序输出链表:从尾到头打印链表元素的值。注意事项:链表为空(添加);链表仅有一个头结点(删除)。代码如下:#include #includeusin

2014-02-28 13:20:03 1028

原创 替换字符串中的空格

题目描述:给定一个字符串,比如” I am a student."。将字符串中的空格替换为%20。那么替换后的字符串为“I%20am%20a%20student.”思路:(1)从头到尾遍历整个字符串,碰到空格,就移动后面的字符串,每次需要向后移动2个字节。(移动非常耗时。)    (2)遍历一遍数组,统计出来整个字符串中有多少个空格,然后可以确定替换之后的字符串的长度,替换空格,生成新的字

2014-02-26 21:28:08 574

原创 二维数组中查找某个数是否存在

问题描述:在一个二维数组中,每一行按照从左道右递增的顺序排列,每一列按照从上到下递增的顺序排列。给定一个数值,判断二维数组中是否存在这个数字。思路分析:首先选取数组中右上角的数字,如果该数字等于要查找的数字,查找过程结束;如果小于要查找的数字,那么去除这个数字所在的列;如果大于要查找的数字,那么去除这个数字所在的行,迭代进行,最终得出是否存在这个数字。代码如下:#include us

2014-02-26 14:42:15 1772

原创 字符串 赋值运算符 重载

问题描述:对字符串的赋值运算符进行重载。注意点:1.将返回值的类型声明为该类型的引用,同时在函数结束前返回实例自身的应用。返回引用的目的是允许连续赋值。                2.把传入的参数的类型声明为常量引用。如果传入参数不是引用而是实例,那么从形参到实参会调用一次复制构造函数。把参数声明为引用可以避免无所谓的消耗,提高代码的效率。       3.判断传入的参数和当前的实

2014-02-26 14:35:05 1868

原创 字符串转化成整数

题目描述:输入一个表示整数的字符串,并把该字符串转化成整数并输出。例如输入“123”,则输出整数123.基本思路:以"123"作为例子。当我们扫描到字符串的第一个字符'1'时,我们不知道后面还有多少位,仅仅知道这是第一位,因此此时得到的数字是1。当扫描到第二个数字'2'时,此时我们已经知道前面已经一个1了,再在后面加上一个数字2,那前面的1相当于10,因此得到的数字是1*10+2=12。接

2014-02-25 15:10:51 612

原创 求链表中的倒数第K个节点

题目描述:求链表的倒数第K个节点基本思路:在遍历时维持两个指针,第一个指针从链表的头指针开始遍历,在第k-1步之前,第二个指针保持不动;在第k-1步开始,第二个指针也开始从链表的头指针开始遍历。由于两个指针的距离保持在k-1,当第一个(走在前面的)指针到达链表的尾结点时,第二个指针(走在后面的)指针正好是倒数第k个结点。特殊处理部分:1.链表为空; 2.链表的长度小于K; 3.K

2014-02-25 14:54:09 711

北斗、GPS定位信息数据库存储查询,优化路线查询

北斗、GPS定位信息数据库存储查询,优化路线查询

2013-07-29

Vc++双队列连接池

VC++基于双队列连接池访问Mysql,应用VC++ stl容器list

2012-04-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除