- 博客(42)
- 收藏
- 关注
原创 合并排序
#include#define MAX 1000using namespace std;//合并排序void Merg(int a[],int b[],int l,int m,int r)//将a中两个区间归并到b中{ int index=l; int i; int j; for( i=l, j=m+1;i<=m&&j<=r;index++) { if(a[i]<a[j])
2013-10-06 23:08:01 891
原创 冒泡排序,选择排序,快速排序,插入排序,折半选择排序
#include#define MAX 1000using namespace std;//简单插入排序void InsertSort(int a[],int len){ for(int i=1;i<len;i++) { int j; int temp; for(j=i-1;(j>=0)&&(a[j]>a[i]);j--) ; temp=a[i]; for(
2013-10-06 22:05:08 776
原创 华为上机笔试之通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则: 1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。 2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。要求实
2013-10-04 15:41:34 2928
转载 全局变量,静态全局变量,局部变量和静态局部变量的区别和联系
C++变量根据定义位置的不同,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名作用域和文件作用域。从作用域看:全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包括全局变量定义的源文件需要用extern关键字再次声明这个全局变量。静态局部变量具有局部作用域。它只被初始化一次,自从第一次初始化直到程序与你新
2013-09-27 11:40:42 927 1
原创 时间<time.h>有关
#include#includeusing namespace std;int main(){ time_t max=0x7FFFFFFF; cout<<ctime(&max)<<endl;//当地时间表示最大值 struct tm *ptr; time_t it=time(NULL);//获得日历时间,即从1899年12月31日0时0分0秒到现在的经历的秒数 cout<<"经历
2013-08-08 10:33:20 566
原创 几个关键字auto register extern简介
auto局部变量 auto 变量是用堆栈(stack)方式占用储存器空间,因此,当执行此区段是,系统会立即为这个变量分配存储器空间,而程序执行完后,这个堆栈立即被系统收回.在大括号{}内声明. 自动变量就是指在函数内部定义使用的变量。他只是允许在定义他的函数内部使用它。在函数外的其他任何地方都不能使用的变量。自动变量是局部变量,即它的区域性是在定义他的函数内部有
2013-08-07 10:42:49 610
原创 C++中模版类basic_string
1.一个函数模版的例子: #includeusing namespace std;templatevoid swap1(T&a,T&b){ cout<<a<<" "<<b<<endl; T temp; temp=a; a=b; b=temp; cout<<a<<" "<<b<<endl;}int main(){ int a,b; char ch1,ch2;
2013-08-05 19:38:10 807
原创 C++ 从标准输入设备读取字符的函数
1. cin 遇到空白符停止且保留其后面的空白符(空白符是指在屏幕上打印显示的是空白的如空格和换行,制表符)2.cin.get(char )函数可以读取任何一个字符3.cin.getline(char a[])可以读取一行4.在string类中,getline(cin,a)和getline(cin,a,'?')遇到界定符停止并且界定符将从输入流中移去并抛弃5.cin.ingore(
2013-08-03 11:48:05 1593
原创 C++之使用魔术公式格式化带小数点的数字
输出double类型的数值,保留小数点后位数为2: cout.setf(ios::fixed);cout.setf(ios::showpoint);cout.precision(2);
2013-07-23 22:00:26 702
转载 C++标准库中的find()函数
泛型算法的 find:在非string类型的容器里,可以直接找出所对应的元素.find函数需要几个参数:迭代器,下标值,所要找的元素vector a;find(a.begin(),a.end(),1);这句话就表示从a的头开始一直到尾,找到第一个值为1的元素,返回的是一个指向该元素的迭代器。find在string容器中用途比较广:find_f
2013-05-14 18:31:25 1706
原创 后缀表达式求值
输入只含数字和运算符的后缀表达式,求其值。 #include#include#include#include#includeusing namespace std;bool issymbol(unsigned char c){ if ((c== '+')||(c== '-')||(c== '*')||(c== '/')) return true; r
2013-04-18 09:37:36 735
转载 STL中map使用
转载自:http://blog.csdn.net/mjshldcsd/article/details/7206901C++map的基本操作和使用 1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能自动建立Key - value的对应。k
2013-04-14 10:32:00 511
转载 回车和换行的区别
转自:http://www.cppblog.com/gtwdaizi/articles/38229.html回车和换行的区别今天,我总算搞清楚“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别了。在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打
2013-04-12 21:21:35 554
转载 MySQL性能优化之硬件优化
转自 http://isky000.com/在过往与很多人的交流过程中发现,在谈到基于硬件来进行数据库性能瓶颈分析的时候,常被大家误解为简单的使用更为强劲的主机或者存储来替换现有的设备。个人觉得这其中可能存在一个非常大的误区。我们在谈论基于硬件进行优化的时候,不能仅仅将数据库使用的硬件划分为主机和存储两部分,而是需要进一步对硬件进行更细的分解,至少也应该分解到如下范畴:
2013-04-09 00:43:51 625
原创 递归--循环日程表问题
#include#include#include#define MAX 1024int a[MAX][MAX];void schedule(int a[][1024],int k);void main(){ int k; scanf("%d",&k); memset(a,0,sizeof(a[0][0])); schedule(a,k);
2013-04-02 15:56:07 733
原创 分治法--快速排序
1.#include #define MAX 1000005int a[MAX];void sort(int a[], int p, int q){ int l = p, r = q, x = a[(p+q)/2], t; while (l < r) { while (a[l] < x) l++; while (a[r] > x) r--; if (l <= r)
2013-04-01 22:15:19 506
原创 STL中sort()函数的使用
c++标准库中的sort()函数,可以直接进行对一直数组进行排序。另外还有库函数lower_bound()可以直接实现查找一个元素在有序数组中第一次出现的位置。和(upper_bound())最后一次出现的下一个位置。 实例如下: #include#include//#includeusing namespace std;int v[10000];void
2013-04-01 13:03:55 581
原创 二分查找
二分查找算法适合于有序序列的查找: 代码如下: #includeint A[100000];int bsearch(int a[],int x,int y,int v);void main(){ int n,v,flag; scanf("%d%d",&n,&v); for(int i=0;i<n;i++) scanf("%d",&A[i])
2013-04-01 12:21:50 483
原创 分治法--合并排序
合并排序牺牲O(n)的空间 代码如下: #includeint A[1000000];int B[1000000];void mergesort(int a[],int x,int y,int b[]){ if(y-x>1) { int m,p,q; m=x+(y-x)/2; mergesort(a,x,m,b);
2013-04-01 12:08:48 437
原创 分治法--最大连续序列和
分治法思想: 1.将问题划分为子问题的求解问题 2.递归求解子问题 3.将子问题的解合并,得到全局解 例子:最大连续和问题代码如下: #include#define MAX 10000int maxsum(int a[],int x,int y){ int m,max,l,r,max1,max2,v; if(y-x==1) retu
2013-03-31 20:59:10 2160
转载 中国象棋将帅问题
在中国象棋只剩下将帅的情况下,由于将帅不可以对脸,再只是用一个字节存储变量的情况下,输出将帅的所有可能: 其中格子编号如下: 1---------2---------3 4----------5--------6 7---------8---------9方法1:#includevoid main(){ unsigned char
2013-03-30 14:12:44 534
翻译 编写程序使windows任务管理器的CPU使用率成正弦曲线
#include#include#includeconst double pi=3.1415926535;const int point=200;//抽样点数const int timeslice=300;//时间片void main(){ double radian=0.0; double increment=2.0/double(point); DWO
2013-03-30 13:12:35 789
转载 圆周率求解
#include int a=10000,b,c=2800,d,e,f[2801],g; void main() { for(;b-c;) f[b++]=a/5; for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a) for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
2013-03-25 11:48:29 781
原创 数论之除法表达式
给出一个除法表达式,X1/X2/X3.../Xk, 输入k个整数,求是否可以通过添加括号使得得出的结果为整数? 其中:3 代码如下:输入结束时,按enter键 然后ctrl+z +enter #include#define MAX 10000int a[MAX];int gcd(int m,int n){ return n==0?m:gcd(n,m%n)
2013-03-25 11:45:24 689
转载 linux内核分析之list_head 实现
转载地址:http://www.cnblogs.com/riky/archive/2006/12/28/606242.html本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动
2013-03-25 00:09:10 640
转载 make oldconfig
源文档地址:http://blog.csdn.net/chicklili/archive/2009/11/04/4767547.aspx 1. 如果.config不存在,运行make config/menuconfig时的缺省设置由固化在各个Kconfig文件中各项目的缺省值决定。 2. 如果.config存在,运行make config/menuconfig时的缺省设置即是当前.
2013-03-20 09:50:11 872
转载 linux下gcc和gdb调试
GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB主要帮忙你完成下面四个方面的功能:启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2013-03-19 21:23:00 489
转载 使用gdb进行编译和调试
GCC程序编译基本格式:gcc [options] [filename]-o 输出可执行文件,如果不给出这个选项,则默认输出a.out可执行文件;如:gcc hello.c -o hello-c 只编译,不连接为可执行文件,生成为以.o为后缀名的目标文件;如:gcc -c hello.c-S 只激活预处理和编译,就是指把文件编 译成为汇编代码。如:gcc -S hello.c
2013-03-19 20:53:06 1358
原创 标准库循环队列应用
纸牌问题,编号为从1到n的纸牌,扔去第一张,把剩下的第一张放在最下面,直到剩下一张牌,输出扔去的牌和剩下的牌的序列。#include#includeusing namespace std;void main(){ queue q; int n; cin>>n; for(int i=0;i<n;i++) q.push(i+1); while(!q.emp
2013-03-19 09:11:09 1385 1
原创 头文件《ctyp.h》下的常用函数
1.判断一个字符是不是字母 :isalpha(c)2.小写转大写:toupper(c)3.大写转小写:tolower(c)4.判断一个字符是不是数字:isdigit(c)5.判断字符是否可打印:isprint(c) 空字符是可以打印的
2013-03-18 09:03:18 624
原创 判断一个点是不是在三角形内
若O在三角形ABC内,则三角形ABC的面积等于三角形OAB+OBC+OCA.关于三角形面积的计算可以采用以下两种方法。1.海伦公式2.有向面积法 A(X0,Y0) B(X1,Y1) C(X2,Y2) 则有向面积的2倍等于 X0Y1+X2Y0+X1Y2-X2Y1-X0Y2-X1Y0
2013-03-17 15:33:47 521
转载 周期串
求一个周期字符串的最小周期#include#includevoid main(){ char str[100]; scanf("%s",str); int len=strlen(str); for(int i=1;i<=len;i++) if(len%i==0) { int ok=1; for(int j=i;j<len;j++) if(str[j%i
2013-03-16 15:59:19 522
转载 ACM-蛇形填数
#include#include#define MAX 10int a[MAX][MAX];void main(){ int x,y,tot=1; int n; scanf("%d",&n); x=0; y=n-1; memset(a,0,sizeof(a)); a[0][n-1]=1; while(tot<n*n) { while(x+1<n&&!a[x+1][y
2013-03-12 22:48:43 645
原创 ACM--数组
1.C语言中数组不能进行赋值操作,如果要赋值数组a[max]里面的k个数字到b[max]里面去,可以这样做: memcpy(b,a,sizeof(int)*k) 或 memcpy(b,a,sizeof(float)*k) 如果把a全部复制到b里面去,则 memcpy(b,a,sizeof(a)). 头文件 #include 2.memset(a,0,size
2013-03-12 18:32:00 824
转载 C/C++程序编译之堆栈
一、预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
2013-03-12 17:01:58 766
原创 ACM-数据统计之重定向vsfopen
1.数据统计(重定向)example:#includevoid main(){ freopen("data.txt","r",stdin); freopen("data.txt","w",stdout); int x; while(scanf("%d",&x)==1) printf("%d\n",x);} 2.数据统计(fopen版) exampl
2013-03-12 08:34:03 742
原创 ACM--吃罐头
Description Sheldon, Leonard, Penny, Rajesh and Howard are in the queue for a "Double Cola" drink vending machine; there are no other people in the queue. The first one in the queue (Sheldon
2013-03-11 23:49:13 637
原创 从命令行编写和编译C/C++程序
本人使用的是vs2010版本。 1.打开Visual Studio命令提示符(2010) 1.打开方法:开始—Microsoft Visual Studio 2010-Visual Studio tools-Visual Studio 命令提示(2010)。 2.在vs命令提示里面输入:notepad example.cpp并按enter键(其中exa
2013-03-10 12:35:55 773
原创 C语言修行之文件操作
C语言对文件的操作主要是流式文件的打开、关闭、读写、定位等各种操作。 所谓流式文件是指:用字符串方式存储信息。如最常用的文本文件。 从存储方式上来看,文件可以分为文本文件和二进制文件。 下面将具体介绍文件的相关知识: 1.文件指针:定义文件指针的一般方式为:FILE *fp 其中fp为指针变量标识符,FILE必须大写。 2.文件的打开和关闭:
2013-02-25 21:49:02 425
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人