当前位置: 首页 > 模式/算法

一串首尾相连的珠子(m个),有N种颜色(N《=10),设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。并分析时间复杂度与空间复杂度

#include <iostream> #define COLOR 3 #define LENGTH 10 using namespace std; //假定m=10,n=3 int GetLength(int* zhuzi);//返回一段包含所有颜色的长度 bool IsAllColor(int* color);//判断是否含有所有颜色 int main() { int zhuzi[LENGTH+1] = {1,2,1,2,3,1,1,2,2,3,0};//存放相应的颜色1~n,最后一位存放0 ...

将O(n^2)的空间化为O(n)的空间复杂度

算法与数据结构习题解析(P59) “<” 与 “=” 对n 个数排序    如递归表达式为:  A[i,j]=(j+1)(A[i-1,j-1]+A[i-1,j]; 由于第i行的值只与第i-1行的值有关 所以可以用一个一维数组来实现   初始化:(第1行的值) A[0]=1;A[1—n-1]=0; 实际上数组的标号表 ...

从 中文分词 展开的 胡思乱想

今天,基本上非常的闲:因为即将展开 内部网页 的升级还没有开始;所以今天上午就闲在 CSDN 看文章; 中文分词 下午,还是木有什么事情做;于是想起之前 公司官网 的 “搜索” 功能! ——这种非 数据库 like 的搜索方式,当初就让自己眼前一亮; ...

Core Techniques And Algorithms In Game Programming

 游戏编程中的核心技术和算法 关于作者本书的作者Daniel Sánchez-Crespo Dalmau是西班牙巴塞罗那Pompeu Fabra大学教授。他创建了西班牙计算机游戏制作第一硕士学位,并担任其主任。他还成立了Novarama­­——位于巴塞罗那的一个独立游戏工作室,主要制作PC/Xbox平台上的创新游戏。同时 ...

linux内核数据结构---链表(1)

Linux内核有一些基本的数据结构,这些数据结构是Linux实现的基础,对于链表相信大家都不陌生,但是Linux内核中的链表与平常平常我们所使用的链表略有不同,第一次遇到或许会感到困惑。 先来看一个链表的节点,对于一个节点,分为两部分,一部分是数据,另一部分是串联数据的指针。Linux链表节点的定义如下(以下代 ...

数据结构学习之集合

数据结构学习之集合 注:本文的主要目的是为了记录自己的学习过程,也方便与大家做交流。转载请注明来自: 另:本文需要单向链表的知识,如果不了解单向链表,可以访问:学习                  只要受过教育的人相 ...

嵌入式系统开发人员C语言测试题-数据结构与算法

本文摘自亚嵌技术论坛:http://www.akaedu.org/ 一.选择题(共15题,每题3分) (1)    下面关于算法说法错误的是_______。 a. 算法最终必须由计算机程序实现 b. 为解决某问题的算法同为该问题编写的程序含义是相同的 c. 算法的可行性是指指令不能有二义性  d. 以上几个都是错误的 (2 ...

压缩算法的历史

虽然是老文了,但仍然推荐阅读:压缩大战真相此文章转载自2004.10的《大众软件》,原作者为 广东 GZ前言--王者归来?等待足足两年之久,压缩霸主WinZip终于在万众期待下发布了9.0正式版。全世界自然一片沸腾,在世界各大知名下载网站中,WinZip9.0再次带起下载狂潮。然而此时国内并没有王者回归的欢呼,却一致 ...

图像拼接算法的基本原理(附图是2000年8月21,23日慕尼黑市区的骑行路线图)

 全景视频是一种利用360 度全景图象建立虚拟环境的新方法。全景图象是通过将普通照相机拍照到的边界部分重叠的图象进行拼接而创建的。可以利用图象重叠部分对应像素的相似性, 通过采用一种行之有效的拼接算法, 使得到的图象无缝平滑。 附图是2000年8月21日慕尼黑市区的骑行路线图,(一位德国教授借 ...

图像处理-sift算法

图像处理-sift算法 sift是图像匹配的非常经典的算法,但是很复杂,要想自己拿C或C++实现很麻烦,如果只是使用的话,有国外某高人维护的sift库,前期只要自己能够调用即可,关键是要熟悉大致的流程,对sift库有个了解,具体的工作只要调用其中的函数即可。匹配效果: ...

算法导论11.4开放寻址法 练习总结

11.4-1 考虑将关键字 10、22、31、4、15、28、17、88、59用开放寻址法插入到一个长度为 m = 11 的散列表中,辅助散列函数为 h"( k ) = k mod m。试说明分别用线性探查,二次探查(c1 = 1,c2 = 3) 和双重散列h2( k ) = 1 + ( k mod (m-1))将这些关键字插入散列表的过程。 ANSWER: 序号 线性探查 二次探 ...

算法导论第十章例题-栈的实现

StackNode.h #include<iostream> using namespace std; class Stack; class StackNode { private: friend Stack; int key; StackNode *Next; public: StackNode(int num):key(num),Next(NULL){} int Getkey() { return key; } StackNode *GetNext() { return this->Next; } };   stac ...

点评 Google

http://www.alphatom.com/content/view/167/69/点评 Google 作者 briansun    2005-04-09 16:48 终于有时间让我们冷静下来好好谈谈Google。好在现在是凌晨,我打开了窗户,这样很冷,但是可以让我的脑子更清醒一点,看看这个我们的生活已经离之不得的工具——尽管几年前我们还没有—— ...

努力学习

       瑞典时间是晚上11点了,中国是凌晨5点吧,今天特意过来总结下这短时间的学习情况。        关于英语的学习我已经在我的msn空间里面写下了,我的msn空间都是用全英文来记录我的生活,不过才开始不久呢呵呵,我很希望通过写的方式提高我的英语能力。 ...

算法导论16.2-6

在O(n)时间范围内解决部分背包问题。 思路:利用快排的思想将数组分为三部分,A,B,C,其中B只包含划分区域的主元一个元素。计算A中物品的重量,如果超过了volume,则继续对A进行划分。如果 w(A)<volume<=W(A+B),则将A中的元素都装进背包,同时尽可能的往背包里填B中的物品,如果volume>W(A+B), ...

算法导论第六章6.5有限队列中的6.5-9课后练习

由题目提示知,需要用到归并排序,又要用到最小堆,那么我想到用含有最小堆排序的归并排序对k个有序数组进行合并因为链表可以看成特殊的动态数组,那么我把链表替换成数组求解。先把k个数组放入到一个新数组A中,那么一共就有k=n/a个数组(a为k个元素数组中所含最多元素的数量) #include <iostream> using name ...

作为经验主义探究的计算机科学:符号和查询

作为经验主义探究的计算机科学:符号和查询(omputer Science as Empirical Inquiry: Symbols and Search) Allen Newell 和 Herbert A. Simon   关键字和短语:符号(symbols), 查询(search),科学(science),计算机科学(computer science), 经验主义(empiric ...

人工生命简介

人工生命 史忠植     人工生命是指具有生命特征的人造系统。在信息科学技术领域中的人工生命,是以计算机为研究工具,模拟自然界的生命现象,生成表现自然生命系统行为特点的仿真系统。人工生命是20世纪80年代后期开始兴起的一种新的学科领域,也是计算机科学继人工智能之后出现的新的 ...

从头到尾彻底解析Hash 表算法

 在研究MonetDB时深入的学习了hash算法,看了作者的文章很有感触,所以转发,希望能够使更多人受益!               十一、从头到尾彻底解析Hash 表算法 作者:July、wuliming、pkuoliver  出处:http://blog.csdn. ...

RSA算法

RSA算法 从baidu 搜索,记录一下 RSA加密算法即RSA算法。 RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就 ...