算法
fengbangyue
做一个真实的自我
展开
-
关于存储结构
写程序一直使用的都是链表,不管是什么样的程序,什么样的数据组织方式。感觉上还可以。因为都不是什么大程序,而起对链表操作又比较简单,思维里已经习惯了。哈哈,明显的不求上进啊。 今天在查看原来写的一个程序时,发现真的好无语哦。全是链表,多多的链表。阅读时很不直观,而起效率也不高。因为程序中大多的是查询操作,用链表的时候,如果要查询的是链表末尾的节点,就很恼火了。发现如果当时用map或原创 2010-05-29 12:07:00 · 889 阅读 · 0 评论 -
快速排序算法
<br /> 到深圳后,就没有到CSDN上来了。每天工作很晚,但感觉无所收获,要说有收获,就是知道工作不是按自己的意愿而安排的。知道自己在以后的日志里。该合理安排自己的业余生活。下一个工作已经找到,新公司应该不错的,这一次不会在跳了。在工作中好好表现吧。<br /> <br />最近复习了几个常用的排序算法,说是复习,其实以前就没有搞懂了。哈哈。。。<br />快速算法,按书上的伪代码写下来还是让我调试了好久,最终搞定。。。<br /> <br />过程大致如下:<br />给一个序列,就说成数组吧,原创 2010-12-07 23:25:00 · 760 阅读 · 0 评论 -
插入排序和选择排序
<br />插入排序模拟事例:<br /> <br />待排序的数组时桌面上的一叠扑克牌。现在要对其进行排序:<br />在桌面上随便抽一张放在手上,很明显一张牌已拍好序。<br />在桌面上再随便抽一张上来,这一次需要和手上的牌进行比较,看是放在牌的前面还是后面。<br />在桌面上再随便抽一张牌上来。这次和桌面上也拍好序的牌比较,从后到前的比较。如果有大于新抽上来的牌的话,那么大于的牌位置就要发生改变了。<br /> <br />伪代码:<br />A [p,r]<br />for(j = p + 1;原创 2010-12-08 00:00:00 · 483 阅读 · 0 评论 -
堆排序
<br /> 堆排序,将一个数组中的数以二叉树的形式表现出来。然后让该二叉树满足堆性质。就是父节点大于子节点。二叉树中存在子节点的节点编号小于或等于n/2的,于是对这些节点充n/2到1调用堆调整函数。这样整个二叉树满足堆性质。然后,减少二叉树大小,方法如下:<br /> <br />用1节点和n节点交换,使堆大小减少1,而此时的n节点值正好是最大值,堆n-1大小的数组进行堆调整,再一次用1和n-1交换,在减少堆大小,如此一直到堆大小1,此时的数组就已经排好序了。。<br /> <br />个人学习记录。原创 2010-12-08 23:24:00 · 460 阅读 · 0 评论 -
模板方法设计模式
今天看《研磨设计模式》的模板方法设计模式,让我异常兴奋,居然在上个项目中我负责的部分我就是用这个方式,我还不知道有一个模式与它对应,这就是理论来自实践的原因,很多东西我们都这样做,但是并没去总结。 其实,模板方法设计模式并不是那么难理解,用C++来说,就是定义一个虚基类,该虚基类就是一个模板,需要使用该模板的就从该类继承。如果共有部分就由该虚基类来实现,如果子类有特殊要求的,就自己实现一个原创 2011-12-25 17:56:50 · 679 阅读 · 0 评论 -
Hash表算法学习
转自:http://www.cnblogs.com/abruzzi/archive/2009/04/18/1438793.htmlHash表这种数据结构在java中是原生的一个集合对象,在实际中用途极广,主要有这么几个特点:访问速度快大小不受限制按键进行索引,没有重复对象用字符串(id:string)检索对象(object)今天整理以前在学校写的一些算法,翻出来一个hash原创 2012-02-07 14:47:12 · 804 阅读 · 0 评论 -
将一个十进制整数反序输出
#include#includeusing namespace std;/*实现将一个十进制整数反序输出如:12345 反序后变成54321要求:不使用系统自带函数库*/int Func(int n, int *p){int i = 0;int j = 0;i = n / 10;if(i == 0){//i==0时,取回个位数,个位数的阶为1*p = n %原创 2012-02-16 09:18:58 · 3183 阅读 · 0 评论 -
求字符串全排列
#include inline void Swap(char& a, char& b) {// 交换a和b char temp = a; a = b; b = temp; } void Perm(char list[], int k, int m) { //生成list [k:m ]的所有排列方式 int i; if (k == m)转载 2012-02-16 10:43:48 · 526 阅读 · 0 评论