摘要: 今天有点时间,打算看点编程算法相关的东西,但是又不想单单看将数据结构和算法的课本,那些课本都太枯燥,提不起兴趣来学习。今天在网上看到《编程珠玑》这本书,下下来研究一下,讲的都是算法和问题如何求解的,通过一个例子来讲解算法,这很有意思,国外的大牛讲的也很通俗易懂,计划有时间要多看看这本书。 今天看了第一章的例子,问题的需求如下:输入:输入的是一个文件,至多包含n个正整数,每个正整数都要小于n,n很大,如果输入时有一个整数出现了两次,就会产生一个致命的错误。输出:以赠序形式输出排序之后的整数列表。 要解决这个问题,首先要生成自己的测试数据,一开始看的时候自己生成测试数据这块还真的把我给蒙住了... 阅读全文
posted @ 2012-10-26 20:43 lscheng 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 在matlab中将数据写入txt文件 1 % write the data to tt.txt 2 % Jason 2012.10.15 3 %-- generate the data 4 sSize=[30 30 30]; 5 fSize=[4 5 6 7 8 9]; 6 data=DataGenerate(sSize,fSize); 7 fid=fopen('data1.txt','wt'); 8 for i=1:sum([30,30,30]) 9 p=num2str(data(i).label);10 fprintf(fid,'%c--', 阅读全文
posted @ 2012-10-23 10:31 lscheng 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 原题A squad of robotic rovers are to be landed by NASA on a plateau on Mars.This plateau, which is curiously rectangular, must be navigated by the rovers so that their on-board cameras can get a complete view of the surrounding terrain to send back to Earth.A rover's position and location is repre 阅读全文
posted @ 2012-10-12 21:50 lscheng 阅读(2701) 评论(0) 推荐(0) 编辑
摘要: 今天开始学习opencv,将前一段时间maltab仿真的结果在c++下实现,这样一来可以学习c++,或者学习opencv这种开源工具的代码习惯。我主要做的是图像的配准,我计划最终实现基于视频的全景图像拼接,慢慢来,现在只做图像配准。今天一个代码很有意义,现在记录下来。 1 #include <opencv2/opencv.hpp> 2 #include <stdio.h> 3 4 using namespace std; 5 using namespace cv; 6 7 8 9 int main(int argc, char* argv[]) 10 { 1... 阅读全文
posted @ 2012-10-10 21:47 lscheng 阅读(4994) 评论(1) 推荐(1) 编辑
摘要: 今天想用matlab画一个在水平方向上是离散标注的图,如下图所示:找了好半天才搞定,也惊叹于matlab的神器。首先,画出一个基本的图出来,注意此时的图像x方向上式数字而不是我们想要的各种不同的标注,然后用set对x轴进行调整。set(gca,'XTick',1:6);将x轴的变化范围调整为1:6,注意此处的1:6不用出现数字0然后set(gca,'XTickLabel',{'灰度','频域','边缘','互信息','PSNR','组合'});进行各个段内的标注设定。 阅读全文
posted @ 2012-10-08 17:03 lscheng 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 如果我们给每个元素都分配一个数字来标记其优先级,不妨设较小的数字具有较高的优先级,这样我们就可以在一个集合中访问优先级最高的元素并对其进行查找和删除操作了。这样,我们就引入了优先级队列 这种数据结构。 优先级队列(priority queue) 是0个或多个元素的集合,每个元素都有一个优先权,对优先级队列执行的操作有(1)查找(2)插入一个新元素 (3)删除 一般情况下,查找操作用来搜索优先权最大的元素,删除操作用来删除该元素 。对于优先权相同的元素,可按先进先出次序处理或按任意优先权进行。#ifndef _PRIORITYQUEUE_H_#define _PRIORITYQUEUE_H_#i 阅读全文
posted @ 2012-09-24 21:18 lscheng 阅读(1304) 评论(0) 推荐(0) 编辑
摘要: 今天老板出差了,闲来无事自己写了一个矩阵类作为休息,想实现像matlab一样强大的功能,今天只是实现了最基本的部分,以后还得多多改进头文件: 1 #ifndef _MATRIX_H_ 2 #define _MATRIX_H_ 3 4 template <class DataType> 5 class Matrix 6 { 7 public: 8 Matrix(); //constructor 9 Matrix(int r, int c); ... 阅读全文
posted @ 2012-09-14 17:28 lscheng 阅读(1226) 评论(0) 推荐(0) 编辑
摘要: 快速排序(Quicksort)是对冒泡排序的一种改进。基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。 一趟快速排序的算法是: 1)设置两个变.. 阅读全文
posted @ 2012-09-13 22:32 lscheng 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 指针是体现C语言强大功能的灵魂,很多人对指针的用法总是很模糊,特别是什么时候该对指针分配空间,什么时候只需要定义下就行了。本文以一个小例子说明与指针有关的声明,定义,以及分配的问题。1.简单指针类型我们以char* 为例,在程序中我定义一个char*型指针pString; char* pString = NULL; pString = "yes, pString"; printf(pString); 程序输出结果:yes, pString然后我们定义另外一个char*型指针并给它分配空间,并初始化; char* qString = new char[6]; qString 阅读全文
posted @ 2012-09-13 20:18 lscheng 阅读(1001) 评论(0) 推荐(0) 编辑
摘要: 希尔(Shell)排序是插入排序的扩展,它允许非相邻的数据项进行交换来提高执行效率。先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成(n除以d1)个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。该方法实质上是一种分组插入方法。例如:初始:d=5 49 38 65 97 76 13 27 49 55 04 49 13 |-------------------| 38 27 |- 阅读全文
posted @ 2012-09-12 20:15 lscheng 阅读(216) 评论(0) 推荐(0) 编辑