C++中位域介绍。一、位域
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为[......]
C++中位域介绍。一、位域
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为[......]
c++原地归并排序变形。
题目:给出一个数组,数组中的两半都是已知顺序的,现要实现将这个数组有序化,要求空间复杂度为 O(1),时间复杂度尽可能的小,编程实现!
c++二分查找拓展,
#include <iostream>
using namespace std;
/**
题目说明:一组有序的数字,查找数组中某一个数据的位置,
如果当前数据有多个,查找到第一个数据的位置
*/
const int N = 7;
int ar[......]
c++辗转相除法。
#include <iostream>
using namespace std;
void swapdata(int &a,int &b)
{
a=a+b;
b=a-b;
a=a-b;
}
int modeDivision(int[......]
求递归式的时间复杂度问题,
题目:T(n) = 25T(n/5)+n^2的时间复杂度 ?
程序员面试宝典 时间复杂度问题!
使用算法导论中主方法来解决:
对于T(n) = a*T(n/b)+c*n^k;T(1)=c 这样的递归式,使用主方法有如下结论:
if ( a &[......]
atoi函数介绍与代码实现,atoi函数是将字符串转化为整形数据,
说明:能够将从当前开始的字符(数字或+、-)到第一个不是数字的字符结束的数字字符串,转化成整数;
atoi 函数的代码实现!
汉诺塔递归算法理解及实现,汉诺塔问题描述: A、B、C 三个桌子,其中A桌子上放了几个大小不同的盘子,盘子的排列顺序为: 从上到下,依次从小到大递增;现要求把这些盘子从 A 桌子上移动到 C 桌子上,盘子移动时有一点要求:每次移动必须保证三张桌子上大盘子在下、小盘子在上;打印移动次序。
如 A[......]
位运算应用举例。
字符串翻转问题,
笔试题:
字符串翻转问题: 给定一个 “hello world”,将字符串翻转输出“world hello”;
[cpp] view plaincopy
#include <iostream>
#include <stdlib.h>
us[......]
单行链表寻找倒数第k个节点,
/**
*题目介绍:给出一个单向链表,输出该链表的倒数第k个节点
* 设尾节点开始从0编号
*/
解题思路:两个指针往后移动,一定要注意边界的处理情况。此处我设置了一个头指针,头指针不存数据,仅仅作为头标志。
[......]