
C/C++
文章平均质量分 69
zhang_j_h
这个作者很懒,什么都没留下…
展开
-
50个c/c++源代码网站
<br />学习编程最好的方法之一就是阅读质量出众的源代码了,然而很久以来一直苦于百度、谷歌都不能找到合适的源码网站。今天偶然间发现了一个这样的帖子就果断转了。下面列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。parr<br />1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段av<br />2、http://www.hotscripts.com/category/c-cpp/scr转载 2010-08-16 14:33:00 · 1285 阅读 · 0 评论 -
使用linux命令及c++编程处理大数据量文件对比
这一段时间以来,之前忙着项目验收,现在又开始实习了,长时间不动笔博客的事情慢慢冷落了下来,似乎也没有刚开始时的求知欲及更新欲了。惰性真是个可怕的东西。言归正传,在电信打酱油的这一段时间以来,一直无所事事,让我很矛盾今后的职业规划问题:到底是进个相对轻松但略感空虚的运营商还是进个崇原创 2011-07-22 16:45:34 · 2314 阅读 · 0 评论 -
常用算法总结之排序(三)----改进冒泡
冒泡排序对n个数据需要进行n-1次比较,若数据已经有序,则仍需n-1次比较,效率较低。改进型算法在某遍扫描后,发现数据都已有序,则结束排序过程。 实现方法:设置旗帜变量,若在某次扫描过程中没有数据交换则表明数据已经有序,检测旗帜变量,确定是直接跳出循环还是进行后续比较原创 2010-10-20 09:57:00 · 497 阅读 · 0 评论 -
经典游戏算法之八皇后
寒假归来,继续征程。继续总结这系列经典的游戏算法。问题描述: 八皇后是个古老而有趣的游戏,是由高斯于1850年首先提出的。要求在国际象棋的棋盘上放置八个皇后,使其不能相互攻击,即任意两个皇后不能处于棋盘的同一行、同一列和同一条对角线上。试问有多少种放法?基本思想: 关于八皇后的算法有很多,但我认为最好理解的还是回溯法。先把皇后放在(0,0)位置,然后把1号皇后放在(1,j)位置,使其满足要求。接着放2号皇后,依此类推。遇到某个皇后如把她无论放在该行的任意位置均不满足要求,则前一个皇后放原创 2011-02-23 12:36:00 · 1293 阅读 · 0 评论 -
打印质数的各种算法----来自酷壳(www.coolshell.com)
<br /><br />打印质数的算法应该是学习计算机编程的一个经典的问题,在这里想给大家展示一些方法,相信这些方法会对你的编程有一定的启发作用。请你注意几点,实际应用和教学应用有很大的差别。最后的那个使用编译时而不是运行时的方法大家可以重点看看。教科书的示例<br />首先,先给一个教科书的示例。下面这个示例应该是教科书(至少是我上大学时的教科学)中算法复杂度最好的例子了。其想法很简单,先写一个判断是否是质数的函数isPrime(),然后从1到n分别调用isPrime()函数来检查。检查是否是质数的算法是转载 2011-02-28 11:00:00 · 1869 阅读 · 0 评论 -
常用算法总结之查找(一)------简单查找
查找又称检索,是指在一批记录中找出满足指定条件的某一记录的过程.在待查找的数据结构中,每一条记录一般包含多个数据域,查找条件一般是给定其中的一个或几个域的值.这些域称作关键字.关键字有主次之分,主关键字可以唯一标识数据结构中的一个记录,而次关键字则不能唯一区分.简单查找对数据的顺序没有要求,但查找效率较低.基本思想:从线性表的一端开始,依次将每个关键值与给定值进行比较,若某个记录关键字等于给定值,表示查找成功,若将所有记录都比较完,仍未找到则表示查找失败.c++代码实现:1.CreatData.cpp原创 2010-11-19 12:00:00 · 547 阅读 · 0 评论 -
经典游戏算法之骑士走棋盘
<br />问题描述:中国象棋中,马可以走遍棋盘上的任何角落.国际象棋中,也同样有这样的说法:骑士可以走遍棋盘上的每个格子.现在的问题是:在一个8x8的棋盘上,从任意位置开始,骑士如何可以不重复地走完所有的位置?<br /> <br />骑士在每一步都有8种可能的下一步走法(边界上除外),为了提高效率,可以选择所要走的下一步为下一步要选择时所能走的步数最少的一步.<br /> <br />函数说明:<br />bool travel(int board[][SIZE],int x,int y);原创 2011-01-14 10:49:00 · 5809 阅读 · 2 评论 -
输出从1到1000的数
templatestruct NumberGeneration{ static void out(std::ostream& os) { NumberGeneration::out(os); os struct NumberGeneration{ static void out(std::ostream& os) { os ::out(std::cout);} 有这样一个面试题——请把从1到1000的数转载 2011-01-10 11:37:00 · 1144 阅读 · 4 评论 -
经典游戏算法之走迷宫
问题描述:使用二维数组构建迷宫,用2代表墙壁,1代表行走路径,0表示可走路径,找出从起点到终点的路径。 函数说明: bool visit_maze(int maze[][SIZE],int ,int ); 遍历迷宫的主要函数,传入代表迷宫的数组及起始位置,函数将从起始位置开始遍历相邻位置以发现可行路径。 具体步骤为,将当前位置置1表示走过该位置,然后依序遍历位置(如:右上左下)递归调用该函数,若到达终点则返回真,否则将当前位置置回0并返回假。 bool judge_arrived(int maze原创 2011-01-03 21:08:00 · 1156 阅读 · 0 评论 -
常用算法总结之排序(七)---直接插入排序
基本思想:构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应位置插入。具体过程:(1)对于第一个元素,因没有比较,将其作为已有序序列,(2)从数组获取下一个元素,在已排序序列中从后向前扫描,进行判断,(3)若有序序列的元素大于新元素,则将该新元素移到下一位置,(4)重复步骤(3),直到找到已排序元素小于或等于新元素的位置,(5)将新元素插入到该位置(6)重复步骤(2)~(5)。c++代码实现1.CreatData.cpp2.InsertSort.cpp3.TestMain.cpp主要编写I原创 2010-11-07 09:33:00 · 508 阅读 · 0 评论 -
常用算法总结之排序(六)----堆排序
<br /> <br /> 堆的概念:堆是一个完全二叉树,树中每个结点对应于一个数据,每个结点应满足以下条件:非叶结点的数据大于或等于其左右孩子结点的数据。左右孩子结点的大小没有要求。从堆的概念中可以看出根结点的值应为最大值。<br /> <br /> 利用堆排序的基本思想:<br /> (1)将无序的数据构成堆,<br /> (2)利用堆排序(即将堆中的数据有序输出);<br /> <br /> 因此,堆排序的俩个难点步骤即是生成堆及原创 2010-11-02 13:27:00 · 650 阅读 · 0 评论 -
常用算法总结之排序(五)----简单选择排序
<br /> <br /> 前以述及,选择排序包括简单选择排序以及堆排序。无论哪种,其基本思想均一致。<br /> 选择排序的基本思想:对n个记录进行扫描,选择其中最小的输出,接着在剩下的n-1个记录再选择最小的记录将其输出,...不断重复这个过程,直到只剩下一个记录。则整个记录将按照从小到大的顺序输出。<br /> <br /> 本篇主要总结简单排序,简单排序名符其实,确实很简单,因此毋需多费笔墨,简单概括即能明了。<br /> 简单选择排序基本思想:从原创 2010-10-25 10:32:00 · 571 阅读 · 0 评论 -
常用算法总结之查找(三)----二叉排序树
<br />前述查找均是以线性表为基础的,由线性表的特性知向线性表中添加数据比较麻烦.因此,简单查找适用于静态查找.<br />而若要在查找过程中添加原查找表未有之数据,则不应使用简单查找.由树的特性知,树可以方便地扩展节点,故可用树形查找表进行动态查找.<br />基本思想:由二叉排序树定义知,若以中序遍历之将得到一有序序列,即以该特点将数据排序,则左子树数据小于根结点,右子树数据大于根结点数据,然后采用二分查找进行数据查找.将待查数据与根结点比较,大于则在右子树中查找,小于则在左子树中查找,否则根结点即原创 2010-12-09 12:58:00 · 730 阅读 · 0 评论 -
常用算法总结之排序(二)----基本冒泡
冒泡排序时一种相邻数据交换的排序方法,通常作为排序算法的入门算法来学习。 基本思想:对待排序的记录关键字从后往前(扫面顺序不同相应比较就不同)进行多遍扫描,当发现相邻俩关键字的次序与要求的排序规则不符时,就交换这俩个记录。这样,关键字较小的记录将从后面向前面移动,就像气泡上浮一样。 具体交换过程: 设需排序的记录共n个,其关键字用数组a保存,则:(规则为从小到大) (1)首先,将a[n-1]与a[n-2]进行比较,若a[n-1] (2)修改数组下标,使需要比较的元素为a[n-2]与原创 2010-10-18 12:43:00 · 521 阅读 · 0 评论 -
常用算法总结之排序(一)----写在前面
最近一段时间算是面试的季节,虽然我还不要找工作,但浸染其中也多少对招聘方的需求有了些了解。对于我们计算机系的学生来说,面试写代码是必不可少的事情,但综合师兄师姐们的说法,难度也不是太大,总体来说是一些常用算法的编程实现。由此,我萌生了总结一下平时常用的算法,诸如排序、查找、字符串操作之类,也算是对于c++的一种复习。 首先还是从排序开始。 排序应该算是必学的入门算法了。所谓排序即是按照一定的规则将一组数据排列起来,在后续的篇章中将默认以从小到大的规则来进行排序。排序按照算法的不同有原创 2010-10-15 10:59:00 · 571 阅读 · 0 评论 -
常用算法总结之查找(二)----折半查找
<br /> <br />这系列基础算法总结本准备尽早结束的,但由于种种原因,拖到现在还没有写完,虽然我的博客定位为个人的折腾记事本,也没什么人访问,但还是觉得惭愧~刚开始时,是同步跟进,总结一篇更新一篇,到了现在倒成了某种意义上的"回忆录"了--倘再不更新,估计差不多又要忘却了.诚如首页那篇文章所述,写博客是促进思考的一种方式,更新博客自然不能懒惰,最近一直迷茫于科研方向的困惑,感慨于导师无暇指导我们这些"迷途中的羔羊",自感堕落不少,良久不学习,内心惶惶,而科研无所进境,又无心学习其他,总觉投鼠忌器.每原创 2010-11-26 11:51:00 · 1003 阅读 · 0 评论 -
学校的华为杯程序设计比赛题目
报名参加了学校的acm程序设计竞赛,想试试自己的水平,没想到我还是太嫩了点,平时实践的太少了,到真正要编时才感觉到力不从心。一共出了四道题目,现选择其中的一题与大家共享。消灭食人树问题 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 问题描述 传说中的一棵食人树入侵xxx(校名,略去不表),xxxSCDA 协会借本次大赛的机会呼唤英雄斩杀邪树,拯救全校师生。 现在的形势是:这棵食人树有许多枝蔓,斩杀它的唯一方法就是原创 2010-09-06 22:59:00 · 1730 阅读 · 2 评论 -
堆和栈的区别!!又死在这个问题上了。。转载百科
http://baike.baidu.com/view/93201.htm 在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据转载 2011-10-11 23:38:55 · 837 阅读 · 0 评论