摘要: 版权所有,转载请标明出处!程序1:// // main.cpp // testC++06ReverseSingleLinkedList // // Created by fei dou on 12-8-9. // Copyright (c) 2012年 vrlab. All rights reserved. // #include using namespace std; typedef struct node{ char data; node * next; }Node; /*从头插入链表*/ inline void insertIntoListFromHea... 阅读全文
posted @ 2012-08-09 16:58 dancingrain 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 版权所有,转载请注明出处!对于该算法的实现思想网上已经有很多,所以这里只是简单介绍原理,重点在于实现代码。Dijkstra算法,又叫迪科斯彻算法(Dijkstra),算法解决的是有向图中单个源点到其他顶点的最短路径问题。举例来说,如果图中的顶点表示城市,而边上的权重表示著城市间开车行经的距离,Dijkstra算法可以用来找到两个城市之间的最短路径。它的实现如下:Dijkstra算法的输入包含了一个有权重的有向图G,以及G中的一个来源顶点S。我们以V表示G中所有顶点的集合,以E表示G中所有边的集合。(u,v)表示从顶点u到v有路径相连,而边的权重则由权重函数w:E→[0,∞]定义。因此,w(u, 阅读全文
posted @ 2012-08-07 23:15 dancingrain 阅读(664) 评论(0) 推荐(1) 编辑
摘要: 版权所有,转载请注明出处!写这篇博客并不是为了探讨算法效率的提升,而是尝试以一种更能够让人们读懂的方式进行书写程序,这里我写了三个程序,分别使用三种编程方式进行书写,希望读者能够找到更加适合自己的方式。1.直接按照一维数组的习惯操作:#include #define N 3 using namespace std; int main (int argc, const char * argv[]) { int A[] = {1,2,3,4,5,6,7,8,9}; int B[] = {7,6,5,1,2,3,2,8,7}; int C[9]= {0}; mems... 阅读全文
posted @ 2012-08-07 11:02 dancingrain 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 1.Vector容器vector 是一种顺序容器,它的元素被存储在一段连续空间中。vector是作为一种动态数组实现的,和普通的数组一样,它的元素被存储在一段连续的空间中,因此不仅可以通过迭代器访问元素,而且可以通过某个元素的指针加上一个偏移量进行访问。vector的大小是自己维护的,用户完全不需要关心其大小,它会根据需要对数组的大小进行扩充。Vector的有点主要有:1.可以通过小标访问元素(O(1))。2.使用迭代器以任何顺序访问元素,正序或者逆序(O(n))。3.可以在尾部添加或者删除元素(O(1))当vector的空间不够时,会自动扩充大小。通常是重新分配一段2倍于原来空间大小的连续内 阅读全文
posted @ 2012-08-06 21:18 dancingrain 阅读(230) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/eyeszjwang/articles/2429382.htmlk-d tree算法 k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。应用背景 SIFT算法中做特征点匹配的时候就会利用到k-d树。而特征点匹配实际上就是一个通过距离函数在高维矢量之间进行相似性检索的问题。针对如何快速而准确地找到查询点的近邻,现在提出了很多高维空间索引结构和近似查询的算法,k-d树就是其中一种。 索引结构中相似性查询有两种基本的方式:一种是范围查询(range se... 阅读全文
posted @ 2012-08-01 12:42 dancingrain 阅读(166) 评论(0) 推荐(0) 编辑
摘要: (一)基本原理用八叉树来表示三维形体,并研究在这种表示下的各种操作及应用是在进入80年代后才比较全面地开展起来的。这种方法,既可以看成是四叉树方法在三维空间的推广,也可以认为是用三维体素阵列表示形体方法的一种改进。八叉树的逻辑结构如下:假设要表示的形体V可以放在一个充分大的正方体C内,C的边长为2 n,形体V C,它的八叉树可以用以下的递归方法来定义:八叉树的每个节点与C的一个子立方体对应,树根与C本身相对应,如果V=C,那么V的八叉树仅有树根,如果V≠C,则将C等分为八个子立方体,每个子立方体与树根的一个子节点相对应。只要某个子立方体不是完全空白或完全为V所占据,就要被八等分(图2-5-1) 阅读全文
posted @ 2012-08-01 11:16 dancingrain 阅读(1153) 评论(0) 推荐(0) 编辑
摘要: 标签:k-d tree物体识别sift休闲最近邻搜索原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://underthehood.blog.51cto.com/2531780/687160By RaySaint 2011/10/12动机先前写了一篇文章《SIFT算法研究》讲了讲SIFT特征具体是如何检测和描述的,其中也提到了SIFT常见的一个用途就是物体识别,物体识别的过程如下图所示:如上图(a),我们先对待识别的物体的图像进行SIFT特征点的检测和特征点的描述,然后得到了SIFT特征点集合。接下来生成物体目标描述要做的就是对特征点 阅读全文
posted @ 2012-08-01 10:54 dancingrain 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 1007: TrianglesResultTIME LimitMEMORY LimitRun TimesAC TimesJUDGE3s8192K70202611StandardA triangle can be made up out of dots, like the ones shown below:The number of dots in each one is called a triangular number. More precisely, a number is said to be triangular if it is of the form ½ n(n+1). 阅读全文
posted @ 2012-07-30 16:09 dancingrain 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 1006: All your baseResultTIME LimitMEMORY LimitRun TimesAC TimesJUDGE3s8192K61952080StandardGiven a base, and two positive integers in decimal (base 10), convert the two numbers to the new base, add them, and display their sum in the new base.InputThree positive integers denoting the base and the tw 阅读全文
posted @ 2012-07-30 15:35 dancingrain 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 1引言操作系统的内存分配问题与内存对齐问题对于低层程序设计来说是非常重要的,对内存分配的理解直接影响到代码质量、正确率、效率以及程序员对内存使用情况、溢出、泄露等的判断力。而内存对齐是常常被忽略的问题,理解内存对齐原理及方法则有助于帮助程序员判断访问非法内存。2程序的内存分配问题一、一般C/C++程序占用的内存主要分为5种1、栈区(stack):类似于堆栈,由程序自动创建、自动释放。函数参数、局部变量以及返回点等信息都存于其中。2、堆区(heap):使用自由,不需预先确定大小。多数情况下需要由程序员手动申请、释放。如不释放,程序结束后由操作系统垃圾回收机制收回。3、全局区/静态区(static 阅读全文
posted @ 2012-07-29 15:46 dancingrain 阅读(284) 评论(0) 推荐(0) 编辑