随笔分类 -  Algorithm

摘要:原版:void *memcpy( void *dest, const void *src, size_t count ) { ASSERT((dest != NULL)&&(src != NULL)); char *temp_dest = (char *)dest; char *temp_src = (char *)src; while(count--) // 不对是否存在重叠区域进行判断 { *temp_dest++ = *temp_src++; } return dest; }改进一:void* memcpy(void* dest, void* source, size_. 阅读全文
posted @ 2012-01-01 23:17 SpringMVC+Hibernate 阅读(146) 评论(0) 推荐(0) 编辑
摘要:字符串的最大相似匹配计划中,kmp完后,本篇继续。。。 阅读全文
posted @ 2011-12-31 13:35 SpringMVC+Hibernate 阅读(131) 评论(0) 推荐(0) 编辑
摘要:KMP算法,Knuth-Morris-Pratt Algorithm,一种由Knuth(D.E.Knuth)、Morris(J.H.Morris)和Pratt(V.R.Pratt)三人提出的一种快速模式匹配算法。KMP朴素算法原理:子串pattern依次与目标串target中的字符比较,如果相等,继续比较下一个字符;如果不等,pattern右移一位,重新开始比较,直至匹配正确或超出target。示例:子串pattern={aabaa},目标串target={aababaacaabaa},比较过程如下图:特点:思路简单、代码直观;但效率低、有回溯、不够简洁、时间复杂度高// 在target中查找 阅读全文
posted @ 2011-12-28 16:56 SpringMVC+Hibernate 阅读(137) 评论(0) 推荐(0) 编辑
摘要:题目:数组中某数字减去其右边的某数字得到一个数对之差,求所有数对之差的最大值。例如:数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11(16 - 5)分析:看到这个题目,很多人的第一反应是找到这个数组的最大值和最小值,然后觉得最大值减去最小值就是最终的结果。但由于我们无法保证最大值一定位于数组的左边,因此这个思路不管用。让每一个数字逐个减去它右边的所有数字,并通过比较得到数对之差的最大值,总的时间复杂度是O(n2)。解法1:分治法(递归实现)通常蛮力法不会是最好的解法,我们想办法减少减法的次数。假设我们把数组分成两个子数组,我们其实没有必要拿左边的子数组中较大的 阅读全文
posted @ 2011-12-28 10:08 SpringMVC+Hibernate 阅读(157) 评论(0) 推荐(0) 编辑
摘要:题目:输入一个整型数组,数据元素有正数也有负数,求元素组合成连续子数组之和最大的子数组,要求时间复杂度为O(n)。例如:输入的数组为1, -2, 3, 10, -4, 7, 2, -5,最大和的连续子数组为3, 10, -4, 7, 2,其最大和为18。背景:本题最初为2005年浙江大学计算机系考研题的最后一道程序设计题,在2006年里包括google在内的很多知名公司都把本题当作面试题。由于本题在网络中广为流传,本题也顺利成为2006年程序员面试题中经典中的经典。分析:如果不考虑时间复杂度,我们可以枚举出所有子数组并求出他们的和。不过非常遗憾的是,由于长度为n的数组有O(n2)个子数组(即: 阅读全文
posted @ 2011-12-22 17:51 SpringMVC+Hibernate 阅读(151) 评论(0) 推荐(0) 编辑
摘要:无私分享,造福天下以下是本blog内的微软面试100题系列,经典算法研究系列,程序员编程艺术系列,红黑树系列4大经典原创系列作品与一些重要文章的集锦。 一、微软面试100题系列横空出世,席卷Csdn--评微软等数据结构+算法面试100题 (在此文中,你能找到与微软100题所有一切相关的东西)微软100题微软、谷歌、百度等公司经典面试100题[第1-60题]微软、Google等公司非常好的面试题及解答[第61-70题]十道海量数据处理面试题与十个方法大总结二、经典算法研究系列 一、A*搜索算法一(续)、A*,Dijkstra,BFS算法性能比较及A*算法的应用二、Dijkstra 算法初探二(续 阅读全文
posted @ 2011-06-18 16:00 SpringMVC+Hibernate 阅读(169) 评论(0) 推荐(0) 编辑
摘要:学习C++和编程的50个观点http://www.programfan.com/club/showtxt.asp?id=32668推荐C++教程(综合了好几个人的推荐)http://www.programfan.com/blog/article.asp?id=7907研发推荐书籍介绍http://www.sudu.cn/info/html/edu/20080403/261058.htmlC++学习推荐书目http://hi.baidu.com/optical_engineering/blog/item/b5bf69347bbf6e3d5bb5f5a4.html撼世出击:C/C++编程语言学习资 阅读全文
posted @ 2010-12-03 09:41 SpringMVC+Hibernate 阅读(217) 评论(0) 推荐(0) 编辑
摘要:众里寻他千百度今天上完课回实验室后,把昨天面试的三道算法题,完完整整的全部自己重做实现了一遍(多种方法)以下代码原则上,力争全部都是用C语言实现,但考虑到扩展性和兼容性,算法1使用了模板测试环境:VS2008 测试结果: 测试通过/**** 欢迎访问杨刚的CSDN技术交流博客:http://blog.csdn.net/Sunboy_2050 ***/ /**************************************/ /***** 时 间:2010.6.28 ****/ /************************************... 阅读全文
posted @ 2010-06-29 23:38 SpringMVC+Hibernate 阅读(117) 评论(0) 推荐(0) 编辑
摘要:今天去百度大厦面试,职位是测试开发工程师(暑期实习),面试官是一位漂亮、友善的JJ 第一道很简单,问程序在内存有几个数据区,堆和栈区有啥区别第二道是两个有序数组(可能升序或降序),要求合并到一个大数组中,使其仍然有序,讲了大体思路,并用C简单写了实现代码第三道是给出int型的x、 y两个数,要求不借助第三个变量交换x和y的值,啊。从大一开始学C,碰到过用value传参、引用传参、指针传参、宏定义交换x和y,但都要用到辅助变量,这次遇到JJ给的不借助第三变量交换x 和y,还真是第一次,My god。。。 第一反应,卡壳了,不过也到觉得很新鲜,特别好奇JJ似乎也看出了我不会,于是说:你先想一会吧, 阅读全文
posted @ 2010-06-29 17:27 SpringMVC+Hibernate 阅读(129) 评论(0) 推荐(0) 编辑
摘要:学习、研究库函数的实现,能使你考虑问题更加严谨、全面,培养良好的编程风格和习惯最近想学习一下C语言库函数的内部实现,于是自己简单地写了几个贴出以下代码,希望大家能够帮忙指正、优化、完善,特别是考虑不周和执行效率上给出指导意见阅读本文前,可以先参考本博客的上一篇文章 C语言函数小集合调试环境:VS2008(C)// sysFunc.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <ctype.h>/******************** 阅读全文
posted @ 2010-06-24 15:12 SpringMVC+Hibernate 阅读(186) 评论(0) 推荐(0) 编辑
摘要:本博客前面文章已对树与二叉树有过简单的介绍,本文主要是重点介绍有关二叉树的一些具体操作与应用阅读本文前,可以先参考本博客 各种基本算法实现小结(三)—— 树与二叉树 和 各种基本算法实现小结(二)—— 堆 栈二叉树深度层数、叶子数、节点数和广度优先算法以及树的先序、中序、后序的递归与非递归(深度优先)测试环境:VS2008(C)#include "stdafx.h"#include <stdlib.h>#include <malloc.h>#define DataType charint d_tree=0; /* tree's depth * 阅读全文
posted @ 2010-06-22 16:12 SpringMVC+Hibernate 阅读(173) 评论(0) 推荐(0) 编辑
摘要:本博客前面文章已对图有过简单的介绍,本文主要是重点介绍有关图的一些具体操作与应用阅读本文前,可以先参考本博客 各种基本算法实现小结(四)—— 图及其遍历 和 图的一些基本算法无向图——邻接矩阵的深度优先和广度优先算法实现测试环境:VS2008(C)#include "stdafx.h"#include <stdlib.h>#include <malloc.h>#define INFINITY INT_MAX#define MAX_VEX 20#define VRType int#define VertexType char#define InfoTy 阅读全文
posted @ 2010-06-21 17:52 SpringMVC+Hibernate 阅读(234) 评论(0) 推荐(0) 编辑
摘要:本博客前面文章已对图有过简单的介绍,本文主要是重点介绍有关图的一些具体操作与应用阅读本文前,可以先参考本博客 各种基本算法实现小结(四)—— 图及其遍历 一、无向图 1 无向图——邻接矩阵 测试环境:VS2008 #include "stdafx.h"#include <stdlib.h>#include <malloc.h>#define MAX_VEX 20#define INFINITY 65535int *visited;struct _node{ int vex_num; struct _node *next;};typedef struc 阅读全文
posted @ 2010-06-21 12:15 SpringMVC+Hibernate 阅读(191) 评论(0) 推荐(0) 编辑
摘要:kmp算法(算法是转的)+代码此算法的确很难理解。但是只要你花耐性去理解;应该是可以理解的;!所以叫做KMP,是因为这个算法是由Knuth、Morris、Pratt三个提出来的,取了这三个人的名字的头一个字母。这时,或许你突然明白了AVL 树为什么叫AVL,或者Bellman-Ford为什么中间是一杠不是一个点。有时一个东西有七八个人研究过,那怎么命名呢?通常这个东西干脆就不用人名字命名了,免得发生争议,比如“3x+1问题”。扯远了。 个人认为KMP是最没有必要讲的东西,因为这个东西网上能找到很多资料。但网上的讲法基本上都涉及到“移动(shift)”、“Next函数”等概念,这非常容易产生误解 阅读全文
posted @ 2010-06-16 15:42 SpringMVC+Hibernate 阅读(159) 评论(0) 推荐(0) 编辑

友情链接:厦门事业单位