摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1003求最大子段和问题,用动态规划即可解决。b[j] = max{b[j - 1] + a[j], a[j]}代码如下:#include using namespace std;const int N = 1000... 阅读全文
posted @ 2012-07-29 15:27 山路水桥 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 先提一个简单的问题,如果有一个庞大的字符串数组,然后给你一个单独的字符串,让你从这个数组中查找是否有这个字符串并找到它,你会怎么做?有一个方法最简单,老老实实从头查到尾,一个一个比较,直到找到为止,我想只要学过程序设计的人都能把这样一个程序作出来,但要是有程序员把这样的程序交给用户,我只能用无语来评... 阅读全文
posted @ 2012-07-23 22:22 山路水桥 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 1. 介绍本文介绍了比较初级的图搜索算法,包括深度优先遍历,广度优先遍历和双向广度优先遍历。2. 深度优先遍历DFS2.1 算法思想从图中某个顶点v开始,访问此节点,然后依次从v中未被访问的邻接点出发深度优先遍历图,直到图中上所有和v有路径相通的顶点都被访问;若此时图中尚有顶点未被访问,则另选图中一... 阅读全文
posted @ 2012-07-22 16:21 山路水桥 阅读(331) 评论(0) 推荐(0) 编辑
摘要: KMP算法KMP 匹配算法是由 "Knuth Morris Pratt" 提出的一种快速的模式匹配算法。hint:不为自身的最大首尾重复子串长度1.待解决的问题:假设P为给定的子串,T是待查找的字符串,要求从T中找出与P相同的所有子串,这称为模式匹配问题。 (可以给出子串在T中的位置) (下文中提到... 阅读全文
posted @ 2012-07-21 16:06 山路水桥 阅读(181) 评论(0) 推荐(0) 编辑
摘要: my_printf.h:[csharp]view plaincopyexternvoidmy_printf(constchar*format,...);my_printf.c:[csharp]view plaincopy#include"my_printf.h"#include"stdarg.h"/*********************************************************************************************************************/voidprintch( 阅读全文
posted @ 2012-07-19 14:54 山路水桥 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 先看这样的代码1voidMyNew(int*p)2{3 p=newint;4}56intmain()7{8int*p=NULL;9 MyNew(p);10}开始写了一篇:函数中分配内存的问题(点击进入),通过说明他们产生了拷贝,而导致p不能成功分配。但并未提出事实根据,下面我们来仔细看看具体原因。我... 阅读全文
posted @ 2012-07-17 21:02 山路水桥 阅读(199) 评论(0) 推荐(0) 编辑
摘要: c语言里有个很少用到的宏 #line,这个宏通常是和__LINE__宏一起使用的,__LINE__宏表示当前c语句在源文件中的行数,以前也只是在书上看到过,写过一些实例小程序,实际应用中并无使用。 好了,废话不说,举个例子来说明 #line宏的使用: 1:#include "iostream" 2:#line 100 3:using namespace std; 4: 5:int main(int argc, char* argv[]) 6:{ 7:cout<<"__LINE__:"<<__LINE__<<endl; 阅读全文
posted @ 2012-07-17 21:01 山路水桥 阅读(4918) 评论(1) 推荐(0) 编辑
摘要: 您正在看的C语言教程是:#pragma 预处理指令详解。在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为: #Pragma Para其中Para 为参数,下面来看一些常用的参数。(1)message 参数。 Message 参数是我最喜欢的一个参数,它能够在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的 阅读全文
posted @ 2012-07-17 20:58 山路水桥 阅读(804) 评论(0) 推荐(0) 编辑
摘要: 一、预处理的由来:在C++的历史发展中,有很多的语言特征(特别是语言的晦涩之处)来自于C语言,预处理就是其中的一个。C++从C语言那里把C语言预处理器继承过来(C语言预处理器,被Bjarne博士简称为Cpp,不知道是不是C Program Preprocessor的简称)。二、常见的预处理功能:预处理器的主要作用就是把通过预处理的内建功能对一个资源进行等价替换,最常见的预处理有:文件包含,条件编译、布局控制和宏替换4种。文件包含:#include 是一种最为常见的预处理,主要是做为文件的引用组合源程序正文。条件编译:#if,#ifndef,#ifdef,#endif,#undef等也是比较常见 阅读全文
posted @ 2012-07-17 20:54 山路水桥 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 其存储位置一般从右至左进行存储即:data: c(6bits) | b(2bits) | a(8bits).依编译器而定,TMS320的DSP的CCS按右至左的顺序。对于位域的定义尚有以下几点说明:0)位段成员的类型必须指定为unsigned int类型;1)一个位域必须存储在同一个字节中,不能跨两个字节。如一个字节所剩空间不够存放另一位域时,应从下一单元起存放该位域。也可以有意使某位域从下一单元开始;2)由于位域不允许跨两个字节,因此位域的长度不能大于一个字节的长度,也就是说不能超过8位二进位。3)位域可以无位域名,这时它只用来作填充或调整位置。无名的位域是不能使用的在某些机器上, 位段总是 阅读全文
posted @ 2012-07-17 20:13 山路水桥 阅读(3210) 评论(0) 推荐(0) 编辑