摘要:
算法要考试了,复习到了排序的知识,所以对复习的内容进行以下总结,参考书目《算法导论》。排序问题是算法与数据结构中常讲到的问题了,有次面试问到了具体的快速排序的原理以及实现,顿时当时就愣了,平时各种语言提供的类库中都有实现好的快速排序算法,针对这个算法原理也就没有在意;不过这次算法课程结束了感觉算法内容还是挺重要的,不过参考算法导论的话真的学了好多数学知识,也被许多数学知识给吓住了,算法导论一书重点不在于算法的实践,经典的算法只是给出了伪代码,然后大量的篇幅进行正确性证明,复杂度分析,胡言乱语一番,接下来具体算法的介绍啦。1、插入排序插入排序的原理是访问过的部分是有序的,不过只记住原理有时候是. 阅读全文
摘要:
递归分析一般利用的方法是主定理,辅助的方法有替换法,递归树方法~主定理:递归树:主定理的证明可以通过递归树的方法进行;主定理适用的范围比较局限,有些情况不能被包括,这些情况就需要利用递归树的方法了,主定理的case1是f(n)小于nlogba多项式时间,原定理描述为f(n)=O(nlogba-ε)且ε>0,它与case2中f(n)=Θ(nlogba)中间差一些情况,就是f(n)小于nlogba,但是多余的不是多项式时间;另外就是case2和case3之间相差的部分,就是f(n)大于nlogba,但是如果不大于多项式时间,就不能满足主定理了;另外一种是case3中的f(n)不满足后面的情况 阅读全文
摘要:
续前面的聚类算法实验,想要达到可视化的实时更新,并且对聚类的图形进行染色,这里单独开辟一个线程刷新界面,这里为设定一个100ms的计时器不停的invalidate(),然后刷新,这时候发现屏幕上的图形一闪一闪的,或者一行一行的刷新,这样效果不是很理想,这时想到了java里双缓冲的一种实现方法,java中调用repaint()的时候中间会先进行update(),然后在进行paint(),这里MFC调用invalidate()的时候会先调用OnEraseBkgnd(CDC* pDC)函数进行背景填充,然后调用OnDraw(CDC* pDC)函数进行重新绘制。闪烁现象就是因为擦除、重绘这两种的颜色反 阅读全文
摘要:
这里的想说的NPC不是Non-Player-Controled,非玩家控制角色,而是Non-determinisitc Polynomial complete problem,它属于一类很特殊的问题,迄今为止,没有人能够找出求解NPC问题的多项式时间的算法,同时也没有人能够证明对于这类问题不存在多项式时间算法; 最短(Bellman -Ford)与最长简单路径,欧拉游程(Fleury)和哈密顿回路,2-CNF可满足性和3-CNF可满足性,这些问题看起来差别很小,但是成对的问题中前者存在多项式时间的算法,而后者属于NPC问题,不存在多项式时间的算法;其实算法中关于这个问题的研究感觉也仅仅存在理. 阅读全文
摘要:
KMP算法,以为一个简简单单的算法,看了我一天时间竟然没有看懂...果然图样图撕破了,三位大师提出的算法岂是我等屌丝能够迅速的理解的?不过话说看了这次算法才知自己的智力有多么的吃紧,还是要努力学习呀~智力不行就要加把劲了。(接下来字符串匹配算法均参考算法导论) 字符串匹配,算法的模型不用提出大家都知道,仅仅是在文本T字符串中精确匹配模式串P,简简单单,轻轻松松的就知道这么一个模型,自然而然的能够想到一个最笨最实用的算法,朴素算法,朴素算法就是逐个比对,然后在文本串中下移一位在进行逐个比对,算法复杂度O((n-m+1)m), 不过这种简单的方法的时间复杂度不是我们能够容忍的,提高一点有一... 阅读全文
摘要:
根据上面第二个数据集的簇的形状比较怪异,分簇结果应该是连起来的属于一个簇,但是k-means结果分出来很不如人意,所以这里介绍一种新的聚类方法,此方法不同于上一个基于划分的方法,基于划分主要发现圆形或者球形簇;为了发现任意形状的簇,用一个基于密度的聚类方法,这类方法将簇看做是数据空间中被低密度区域分割开的稠密对象区域,这一理念刚好也符合数据集的特征。 DBSCAN:一种基于高密度连通区域的基于密度的聚类方法,该算法将具有足够高密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇。它将簇定义为密度相连的点的最大集合;为了理解基于密度聚类的思想,首先要掌握以下几个定义: 给定对象... 阅读全文
摘要:
说来这个聚类算法的实现是数据挖掘课程的第三次作业了,前两次的作业都是利用别人的软件,很少去自己实现一个算法,第一个利用sqlserver2008的商业智能工具实现一个数据仓库,数据处理,仓库模型的建立绕,维度表,事实表的创建,不过考试的时候应该也会有数据仓库常用模型的建立吧;第二次利用weka的分类和关联规则算法跑一些提供的数据,其实那些算法的参数原理都不晓得; 不过这次的聚类作业竟然是实现一个自己的算法针对提供的数据进行聚类,先描述一下提供的要聚类的数据,主要是两个数据集: 针对数据集1能够很清楚的看出聚类的意图,但是数据集2不太明白数据聚类的意图;针对数据集1可以看出利用欧几里得距离... 阅读全文
摘要:
这里介绍一下两个比较实用的功能,一个是位对话框绘制自适应的位图背景,随着对话框的变化位图背景能够改变,但是这里的位图效果是平铺效果,我目前还没找到怎么实现一个位图撑满整个对话框,随着变化位图进行拉伸这种效果,希望有知道的人告诉我一下,不过我会查找一下资料的,等到有最新的资料我会更新在这里,这里先介绍平铺效果,效果图如下:虽然不是很好看,但是固定了对话框大小,设计了相对应的位图之后作为设计程序背景图还是可以的,哈哈,总算是一种技术;这里主要实现代码就下面的几行,这个函数onCtlColor是为控件绘制背景的,获取为对话框绘制背景的那一部分,重新绘制背景即可,这里重点关注利用位图作为画刷那一部分; 阅读全文
摘要:
VC的代码看起来总是那么的凌乱,总是不想下手去学习它,这些书本一直在暑假沉睡了很久,为了程序考试,拿出来学习了,因为至少现在不在是一无所知的少年了,知道了语言的语法,知道了一些API的应用,了解了一点面向对象的思想,决定直接拿着实例来啃了,昨天尝试了第一个实例,虽然只是简单的功能,昨天看了一天无从下手,一直不愿意下手,一拖再拖,今天终于下手了,虽然做了很多typewriter的工作,但是我相信这样还是会有进步的,只要把理解的记录下来。 这两天完成的一个实例是自绘对话框,虽然win7的对话框已经很美丽了,但是如果能够利用自己设计的位图作为对话框岂不是更完美,不是么?先上最终的效果图,这个效果可. 阅读全文