月度归档:2014 年九月

C++中位域实例介绍



C++中位域介绍。一、位域

有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为[......]

Read more

c++原地归并排序变形实例源码



c++原地归并排序变形。

题目:给出一个数组,数组中的两半都是已知顺序的,现要实现将这个数组有序化,要求空间复杂度为 O(1),时间复杂度尽可能的小,编程实现!

 

 

  1. #include &[......]

Read more

c++二分查找拓展

c++二分查找拓展,

#include <iostream>

using namespace std;
/**
题目说明:一组有序的数字,查找数组中某一个数据的位置,
如果当前数据有多个,查找到第一个数据的位置
*/
const int N = 7;
int ar[......]

Read more

求递归式的时间复杂度问题

求递归式的时间复杂度问题,

题目:T(n) = 25T(n/5)+n^2的时间复杂度 ?

程序员面试宝典 时间复杂度问题!

使用算法导论中主方法来解决:

对于T(n) = a*T(n/b)+c*n^k;T(1)=c 这样的递归式,使用主方法有如下结论:

if ( a &[......]

Read more

汉诺塔递归算法理解及实现

汉诺塔递归算法理解及实现,汉诺塔问题描述: A、B、C 三个桌子,其中A桌子上放了几个大小不同的盘子,盘子的排列顺序为: 从上到下,依次从小到大递增;现要求把这些盘子从 A 桌子上移动到 C 桌子上,盘子移动时有一点要求:每次移动必须保证三张桌子上大盘子在下、小盘子在上;打印移动次序。

如 A[......]

Read more

位运算应用举例

位运算应用举例。

一、位操作符介绍

单目操作符
1、   &   按位与
2、   | 按位或
3、 ~ 按位取反
4、 >> 右移操作符 (非循环)
5、 << 左移操作符 (非循环)
双目操作符
1、 ^ 取异或运算

二、异或操作的[......]

Read more

字符串翻转问题

字符串翻转问题,

笔试题:
字符串翻转问题: 给定一个 “hello world”,将字符串翻转输出“world hello”;

[cpp] view plaincopy
#include <iostream>
#include <stdlib.h>
us[......]

Read more

单行链表寻找倒数第k个节点

单行链表寻找倒数第k个节点,

/**
*题目介绍:给出一个单向链表,输出该链表的倒数第k个节点
*           设尾节点开始从0编号
*/

解题思路:两个指针往后移动,一定要注意边界的处理情况。此处我设置了一个头指针,头指针不存数据,仅仅作为头标志。

 [......]

Read more