会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
深海里的火种
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
下一页
2013年1月4日
201314
摘要: 今天是一个西方历法和中国文化结合起来,比较有意思的日子。“爱你一生一世”。不知道会爱谁一生一世,因为我无法定义一生一世的期限和其意义。所以只能对正在爱着的,失去的,将来的,说一句我爱你。只有等我离开人世的那一刻,我才能许你一生一世。
阅读全文
posted @ 2013-01-04 09:55 da
阅读(150)
评论(0)
推荐(0)
2012年12月28日
归并排序
摘要: 归并排序归并是对于元素的集合,用指定个数的元素排序,然后进行合并排序的一种方式。我们这里主要是研究的两两合并的方式,也称为二路归并。下面来看看推导过程: 设有数组int data[8]={9,1,15,8,7,3,6,4}; 1,此时元组为[{9} {1} {15} {8} {7} {3} {6} {4}],把元素分为2个一组,然后排序则有{1,9} {8,15}{3,7}{4,6} 2,此时发现元组大于1,则继续2个一组归并,得到{1,8,9,15},{3,4,6,7} 3,此时元组仍然大于1,则继续2个一组归并,得到{1,3,4,6,7,8,9,15}。此时元组为1,结束归并,得到...
阅读全文
posted @ 2012-12-28 16:36 da
阅读(212)
评论(0)
推荐(0)
2012年12月27日
改进排序:希尔排序、堆排序
摘要: 1,希尔排序。希尔排序是对插入排序的改进。它的原理是将元素分为设定步长的多个序列,对每个序列进行插入排序;然后改变步长,直到元素序列不可分,整个序列排序完毕。比如:data[10]={0,5,7,1,6,3,9,2,4,8};那么如何来排序呢?首先设定步长为3,那么第一次步长为3,此时数组被分为:{0,5,7}{1,6,3}{9,2,4}{8}接着对列进行排序,得到以下序列:{0,2,3}{1,5,4}{9,6,7}{8}即:{0,2,3,1,5,4,9,6,7,8}然后改变步长,分开的数组长度为3*3,原来数组的长度为10<3*3,故此时对整个数组进行插入排序。仔细观察,此时数组几乎已
阅读全文
posted @ 2012-12-27 16:44 da
阅读(376)
评论(0)
推荐(0)
简单排序:冒泡、选择、插入
摘要: 1,冒泡排序。冒泡排序的原理很形象,就像是气泡,轻的往上浮的过程,直到气泡都按轻重排列。那么算法中,如果我们用数组来存放元素,要对数组的每个元素进行向上冒泡。a,伪冒泡排序void Bubble(int *data,int length){ for(int i=0;i<length;i++)//每个元素进行冒泡 { for(int j=length-1;j>=0;j--)//每个元素与上一个元素进行对比 { if(data[i]<data[j])//冒泡,向上交换数据 { ...
阅读全文
posted @ 2012-12-27 09:46 da
阅读(224)
评论(0)
推荐(0)
2012年12月26日
c/c++函数调用机制的理解
摘要: 要想理解函数调用,首先必须理解函数。函数的值一般由返回值和传递的参数构成。所以当函数建立的时候,会有一段内存用来存储函数的参数和返回值。在c中参数的传递只有值传递的形式,而在c++中则多了引用传递。值传递的过程,是指在被传递的函数中,新建了一块内存用来存储被传递的参数。而引用传递,则没有新建一块内存,直接对原来参数的内存进行操作。从这一点上c++的函数的性能比c优越。注意c中的指针传递实际上是值传递的一种方式,由于改变指针的地址,因而改变了原来的值,使得看起来像引用传递。理解了参数的传递,下面来看看函数间的调用,函数的调用一般有3种形式。A,同步调用。即在函数A中调用B函数,直到B执行完毕,A
阅读全文
posted @ 2012-12-26 18:14 da
阅读(446)
评论(0)
推荐(0)
2012年12月24日
宏模拟循环
摘要: 先看例子:#define A(x) x;x;x;x;x;x;x;x;x;xvoid main(){ int n=1; A(A(printf("%d ",n++)));}打印值:1,2,3,4...100为什么呢?首先要理解,宏的原理。宏是为了简化编程,用来替代一系列预定义指令,是程序中常用的一种方法。那么如何展开?看上面的例子,首先宏中的参数是A(printf("%d ",n++)),所以需要将参数代入,得到10个A(printf("%d ",n++)),发现此时参数依然为宏,需要再展开,得到100个printf("%d &
阅读全文
posted @ 2012-12-24 17:25 da
阅读(221)
评论(0)
推荐(0)
递归、尾递归
摘要: 为了理解递归,则必须首先理解递归。所谓递归,就是函数调用自身的一种方法。要理解递归,首先要引入栈的概念。栈是一种数据结构。简单的说,栈是存储数据的数据块,允许数据先进先出,类似于枪的弹匣。栈用来存放递归过程中产生的中间数据。如果有判断条件,直到栈中的数据全部出栈递归完成;否则栈的空间会一直增加,递归也会一直进行。为了避免这种现象,有时候我们要的结果是递归完后的结果,我们引入尾递归。所谓的尾递归,是递归的一种特例。是指把把递归的结果当成递归的参数,传给下一个递归。这样一来之前的栈中的参数就没效果了,所以如果编译器对此进行优化的话,按照道理尾递归就永远不可能溢出。下面来看下例子:打印1-1000这
阅读全文
posted @ 2012-12-24 16:20 da
阅读(336)
评论(0)
推荐(0)
末日重生
摘要: 今天是2012年12月24日,末日之后,圣诞之前,是为重生日。借此机会总结过去的26年。从2006年接触编程到今年已经有6个年头,我也从一个20岁的毛头小伙子长大了。6年里,接触过很多语言,罗列起来也真心不少。c,c#(asp.net),as3.0,js,jsp,asp,php,html,css,asmc++,python.记得当初接触第一次看到老师用c打印出来一个图形界面是何等雀跃。记得毕业设计时候,全组3个人,其实全是我一个人搞定,做了一个asp.net的网站。另外还帮另外一个玩的好的哥们做了一个。那时还颇有成就感。要工作了,碰碰撞撞,一路坎坷终于有机会写代码了。记忆最深的是出国的1年,整
阅读全文
posted @ 2012-12-24 10:44 da
阅读(191)
评论(0)
推荐(0)
2012年12月20日
图-最小生成树
摘要: 生成树:若从连通图的某个顶点出发,可以系统的访问到图中所有的顶点,则遍历时经历过得边和图的所有顶点构成的的子图,成为该图的生成树。最小生成树(MST):如果连通图是网,则网中所有生成树中权值总和最小的生产树为最小生成树。Prim算法:设G=(V,E)为N个顶点的连通图,T=(U,TE)是G的最小生成树,T的初始状态为U={U0},TE={},重复执行以下操作:在所有u属于U,v=V-U中的边中找一条最小权值的边(u,v)加入到TE中,同时v并入到U,直至U=V。算法演示:http://sjjg.js.zwu.edu.cn/SFXX/sf1/prim.htmlKruskal算法:与Prim算法类
阅读全文
posted @ 2012-12-20 15:36 da
阅读(163)
评论(0)
推荐(0)
图-遍历算法
摘要: DFS(Depth First Search)即深度优先搜索:从图中选择一个点作为起始点,假设从左边的邻接点开始访问,如若存在继续按照此规则访问,否则则退回开始顶点;然后从未被访问的点开始,与前面规则一致,直到所有的点被访问。演示:http://sjjg.js.zwu.edu.cn/SFXX/sf1/sdyxbl.htm邻接矩阵算法:void DFS(int vIndex,int int visited[]){visited[v]=1;for(int col=0;col<numV;col++){ if(Edge[v][col]==0) continue; if(!visted[col..
阅读全文
posted @ 2012-12-20 14:32 da
阅读(203)
评论(0)
推荐(0)
上一页
1
2
3
下一页
公告