- 博客(31)
- 收藏
- 关注
原创 基数排序
基数排序思路:类似于快速转置的快速定位方法,利用上一个的开始位置和个数进行计算下一个的位置。利用额外空间进行排序。//基数排序//LSD-- Least Significant Digit firstint GetMaxDigit(int* a, int size){ int Digit = 1; int max = 10; for (int i = 0;
2016-05-25 23:07:35 204
原创 Linux下vim简单配置
配置文件的位置在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root⽬目录下,通常已经存在一个.vimrc文件。1.在网上根据自己的需求找到相关配置信息2.安装Taglist插件链接:http
2016-05-25 13:11:09 243
原创 记数排序
记数排序思路:首先遍历一遍,找到最大和最小的数,利用最大和最小开辟空间,记为tmp.然后统计各个数字出现的次数,利用出现的次数,遍历tmp,根据出现的次数,重新写入数组a中//计数排序void CountSort(int* a, int size){ assert(a); int max = a[0]; int min = a[0]; for (int i =
2016-05-24 23:48:31 247
转载 《More Effective C++》条款27:如何让类对象只在栈(堆)上分配空间?
昨天一个同学去网易面试C++研发,问到了这么一个问题:如何限制一个类对象只在栈(堆)上分配空间?一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分配空间的类。这能不能实现呢?仔细想想,其实也是可以滴。在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。
2016-05-23 10:03:14 296
原创 Linux下find命令
Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了很多的查找条件,功能非常强大。1.命令格式:find pathname -options [-print -exec -ok ...]2.命令功能:用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)3.命令参数:pathname: find命令所查找的
2016-05-20 12:07:57 345
原创 用来两个栈实现一个队列。
题目:用来两个栈实现一个队列。#includetemplate class CQueue{public: void AppendTail(const T& Node) { _s1.push( Node); } void DeleteHe
2016-05-13 18:16:54 185
原创 重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树,假设输入的前序遍历和中序遍历的结果中都不含重复的数字,例如输入前序遍历{ 1,2, 4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}则重建出图2.6所示的二叉树并输出它的头结点。#pragma once#includestruct BTNode{ int valu
2016-05-13 13:48:36 171
原创 PAT乙级1012-D进制的A+B (20)
//D进制的A+B (20)#include<iostream>#include<stdlib.h>#include<string>using namespace std;string conversion_number(int sum, int D ){ string str = "" ; //用s...
2016-05-11 14:37:40 221
原创 输入一个链表的头结点,从尾到头反过来打印出每个节点的值。
题目:输入一个链表的头结点,从尾到头反过来打印出每个节点的值。利用栈的性质。void PrintList(SListNode * &ppHead){ std:: stack Nodes; SListNode* cur = ppHead ; while (cur) {
2016-05-11 13:26:06 502
原创 快速排序
//快速排序#includeusing namespace std;void qsort(int *array, int len){ int value, start, end; if (len <= 1) //边界条件 return; value = array[0]; // start = 0; end = len - 1; while (start < e
2016-05-11 11:40:54 237
原创 Linux基础
存储器是指内存CPU读取的数据都是从内存中来的,CPU处理完成的数据,必须要先写回内存,最后数据才从内存传输到输出单元。环境变量:(全部大写) 多用户操作系统,每个用户登陆后都有自己的专有环境。环境变量有一组变量组成。shell: 命令行解释器,bash是其中的一种常见的环境变量:1.PATH echo $PATH目录结构:多叉树 / 根
2016-05-11 00:03:11 2183
原创 《C++primer》读书笔记四
模板参数的名字,在它被声明为模板参数后,一直到模板声明或定义的结束,都可以被使用,如果在全局域中声明了与模板参数同名的变量,则该变量被隐藏。typedefdouble Type;templateclasstype>classQueue{public: //...private: Type ite
2016-05-10 23:51:00 219
原创 请实现一个函数,把字符串中的每个空格换成20%
#include#include#includevoid ReplaceBlank(char arr[]){ int len = strlen(arr); if (arr == NULL&&len <= 0) //临界条件 return; int BlankCount = 0; for (int i = 0; i < len; i++) { if (arr[i]
2016-05-10 17:44:51 686
原创 折半查找
//折半查找#includeint binsearch(int arr[], int n , int x ){ int left = 0; int right = n - 1; while (left <= right) { int mid = left - (le
2016-05-09 22:21:19 295
原创 练习n的阶乘
//练习n的阶乘#includeint main(){ int n = 0; scanf( "%d", &n); int sum = 1; for (int i = 1; i <= n; i++) { sum *= i; }
2016-05-09 22:19:26 825
原创 编写程序计算1到100中所有整数出现9的次数
//编写程序计算1到100中所有整数出现9的次数#include#includeint main(){ int count = 0; for (int i = 1; i <= 100; i++) { if (i % 10 == 9) { ++count; } if (i / 10 == 9) { ++count; } } printf("%d
2016-05-06 10:00:42 930
原创 计算 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值
//计算 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值#include#includeint main(){ int den = 1; //分母 double member = 1.0; //分子 double sum = 0.0; int flag = 1; for (int i = 0; i <
2016-05-06 09:54:23 1029
原创 输出一个整数val的每一位
//输出一个整数val的每一位#includeusing namespace std;int main(){ int val = 0; printf( "请输入一个整数" ); scanf( "%d", &val); while (val) { pr
2016-05-06 09:19:21 326
原创 写一个函数,返回二进制中1的个数
//写一个函数,返回二进制中1的个数#include#includeint count_one_bit(unsigned int i){ int count = 0; while (i) { ++count; i = i >> 1; } return count;}int main(){ int ret=count_one_bit(15); printf("%d
2016-05-05 11:49:47 227
原创 求10个数中的最大值
//求10个数中的最大值#include#includeint main(){ int array[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int i = 0; i < (sizeof(array) / sizeof(array[0])); i++) { if (array[i]>array[0]) { int tmp
2016-05-05 11:21:21 403
原创 [C语言]不允许创建临时变量,交换两个变量的内容
//不允许创建临时变量,交换两个变量的内容#include#includevoid my_swap(int *a, int *b){ *a = *a + *b; *b = *a - *b; *a = *a - *b;}int main(){ int a = 10; int b = 20; my_swap(&a, &b); printf("%d %d", a, b);
2016-05-05 09:51:59 345
原创 优先级队列
#include #include//仿函数比较小templatestruct Less{ bool operator() (const T& l, const T& r) { return l < r; }};//仿函数比较大templatestruct Greater{ bool operator() (const T& l, const T& r) {
2016-05-04 23:48:51 198
原创 判断1000年-2000年之间的闰年
//判断1000年-2000年之间的闰年#includeint main(){ int count = 0; for (int year= 1000; year <= 2000; year++) {//四年一闰,百年不闰,400年一闰 if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { print
2016-05-04 18:24:37 282
原创 输出乘法口诀表
//输出乘法口诀表#includeint main(){ for (int i = 1; i < 10; i++) //1-10左闭右开 { for (int j = 1; j <= i; j++) //j<=i 因为有1*1 2*2.. 9*9 { printf("%d*%d=%d ", j, i, i*j); //先输出j,因为乘法口诀表小的在前面 } pri
2016-05-04 18:11:12 632
原创 打印100~200 之间的素数
#include#includeint main(){ for (int i = 100; i <= 200; i++) { for (int j = 2; j < sqrt(i); j++) { if (i%j != 0) { printf("%d\n", i); break; } else { break; }
2016-05-04 17:25:42 202
原创 PAT乙级1011-个位数统计
题目描述给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。 输入描述: 每个输入包含1个测试用例,即一个不超过1000位的正整...
2016-05-04 10:14:05 483
原创 《剑指offer》面试3:二维数组查找(杨氏矩阵查找)
题目:在一个二维数组中,行从左到右递增,列从上到下递增。请完成一个函数进行查找#define _CRT_SECURE_NO_WARNINGS 1#includeusing namespace std;bool find(int *array, int rows, int columns, int goal){ bool foun
2016-05-03 17:48:45 249
转载 new和malloc的区别
来源:melonstreet链接:http://www.cnblogs.com/QG-whz/p/5140930.html前言几个星期前去面试C++研发的实习岗位,面试官问了个问题:new与malloc有什么区别?这是个老生常谈的问题。当时我回答new从自由存储区上分配内存,malloc从堆
2016-05-02 11:57:57 312
原创 《剑指offer》 02 单例模式
题目:设计一个类,我们只能生成该类的一个实例。不好的解法一:只适用于单线程环境。思路:将构造函数设置为私有,利用静态指针,如果指针为空(是否为第一次),就创造。class CSingleton{private: CSingleton() //构造函数是私有的 {} static CSingleton *m
2016-05-02 11:50:27 198
原创 《剑指offer》01 赋值运算符函数
sizeof(一个空类)为什么不是0?答:空类型的实例不包含任何信息,本应该是0,但是当我们声明该类型的实例的时候,它必须在内存中占有一定的空间,否则无法使用这些实例。调用构造函数和析构函数秩序要知道函数的地址,这些函数的地址只与类型相关,而与类型的实例无关。如果把析构函数标记为虚函数呢?答:会生成虚函数表,并在该类型的每个实例中添加一个指向该虚函数表的指针。32位,4字节 64位
2016-05-01 15:48:28 256
原创 判断单链表是否带环,若带环,求环的长度,求环的入口点
思路:快慢指针思想//判断单链表是否带环SListNode* CheckCycle(SListNode* pHead){ SListNode* fast = pHead; SListNode* slow = pHead; while(fast&&fast->next)//快指针走两步,慢指针走一步,如果在同一个环中,一定相遇 { fast = f
2016-05-01 10:12:10 423
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人