
数据结构&算法
jianghuihong2012
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
查出第一次只出现一次的字符
#include #include #include using namespace std;int main(){ //查出第一次只出现一次的字符 //思想是对于每个数统计一遍 char* str="aafdfeefm"; int length=strlen(str); int total; for(int i=0;i { total=0; for(int j=0;j {原创 2013-10-24 21:24:16 · 691 阅读 · 0 评论 -
根据前序和中序重建二叉树的代码,出了错误 请指教
代码如下:#include class node{public: char value; node(char a) { value=a; lchild=NULL; rchild=NULL; } node* lchild; node* rchild;};void Rebuild(char *pPreOrder,char* pInOrder,int nTree原创 2014-03-07 10:17:14 · 795 阅读 · 0 评论 -
如何判断系统是大端还是小段算法
如何判断系统是大端还是小段算法,并且给出了关于内存布局的分析和例子。原创 2014-03-09 17:00:32 · 3328 阅读 · 1 评论 -
分治法:求解一个乱序数组中距离最近的两个数
采用分治法求解一个乱序数组中距离最近的两个数例如:3,4,1,6,71,19,10,25 返回1 即返回(4-3=1)的值。采用分治法的算法如下:简单分享思想:从数组中间取个数,假设为Ai,用Ai将数组分成了两部分,分别求出左部分的距离最小值,右部分的距离最小值,继续计算所有其他元素离Ai的最小距离,从这三个距离中选择最小的距离即可。原创 2014-03-18 10:49:44 · 2808 阅读 · 5 评论 -
顺序输出从1到N位的所有数字(N可能是一个大数位)。
顺序输出从1到N位的所有数字(N可能是一个大数位),如到N=3时,输出所有1-999的数字。如果N=10时,输出所有1-999999999的所有整数。注意,这里的N可能会很大,也就是要注意大数的处理。解析:这里我们要注意,如果采用系统自带的int可能会溢出,那么我们可以考虑用字符数组的方式来解决问题。也就是用字符数组来模拟整数的加法问题。下面就是给出了可以代码。#include原创 2014-03-29 13:22:21 · 2380 阅读 · 0 评论 -
最近点对问题
最近点对问题定义:已知上m个点的集合,找出对接近的一对点。 在二维空间里,可用分治法求解最近点对问题。预处理:分别根据点的x轴和y轴坐标进行排序,得到X和Y,很显然此时X和Y中的点就是S中的点。情况(1):点数小于等于三时: 情况(2):点数大于三时:转载 2014-03-18 19:17:43 · 1139 阅读 · 0 评论 -
求数组中最长递增子序列问题
#include #define size 7//返回数组的最大值int maxlist(int arr[]){ int temp=arr[0]; for(int i=1;i<size;i++) { if(temp<arr[i])temp=arr[i]; } return temp;}//返回最长递增子串int getmaxlen(int arr[]){ int原创 2014-03-19 15:01:07 · 765 阅读 · 0 评论 -
卡特兰数及栈出栈顺序问题的相关研究
一、卡特兰数卡特兰数又称卡塔兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。在这里表示对数学家的尊敬,同时。。。也因为他发明了这些难懂的东西,脑袋都被这些数学家弄炸了。首先是卡特兰数的定义:令h(0)=1,h(1)=1,catalan数满足递推式:h(n)= h(0)*原创 2014-04-16 09:55:10 · 1896 阅读 · 0 评论 -
求子数组的最大和问题
#include #include using namespace std;#define size 8//返回一个数组的最大值int max(int data[]){ int temp=data[0]; for(int i=1;i<size;i++) { if(temp<data[i])temp=data[i]; } return temp;}//采用动态规划方法原创 2014-04-17 16:07:43 · 904 阅读 · 0 评论 -
关于排序的稳定性问题
如果在排序中,相同的数字经过排序后,相对位置一定保持不变,那么就说这个排序算法是稳定的。反之,则为不稳定排序算法。1 插入排序:稳定2 归并排序:稳定3 希尔排序:不稳定4 快速排序:不稳定5 计数排序:稳定6 堆排序:不稳定7 冒泡排序:稳定8 选择排序:不稳定9 基数排序:稳定原理分析总结:(1)冒泡排序冒泡排序就是把小的元素原创 2014-03-24 09:06:44 · 821 阅读 · 0 评论 -
POP3和SMTP协议分析
RELEASE INFORMATIONProject: Email Author : Tao Xia/PIMVersion: v1.0Date: 2008-10-13[Notes] 1.Any quotation or copy of this file please reser转载 2014-03-24 16:56:30 · 5714 阅读 · 0 评论 -
查找第二大数的算法
#include #include #include using namespace std;//寻找第二大的数 采用记录两个数的办法int secondbig(int data[],int N){ assert(N>=2); int first,second; if(data[0]>data[1]) { first=data[0]; second=data[1];原创 2014-04-12 20:12:10 · 1982 阅读 · 0 评论 -
TPM的认证过程
翻译文章:《DirectAnonymousAttestation》文章翻译 2014-06-02 11:21:16 · 6390 阅读 · 1 评论 -
编程验证哥德巴赫猜想
1、什么是哥德巴赫猜想在1742年给欧拉的信中哥德巴赫提出了以下猜想:任一大于2的整数都可写成三个质数之和。因现今数学界已经不使用“1也是素数”这个约定,原初猜想的现代陈述为:任一大于5的整数都可写成三个质数之和。欧拉在回信中也提出另一等价版本,即任一大于2的偶数都可写成两个质数之和。今日常见的猜想陈述为欧拉的版本。把命题"任一充分大的偶数都可以表示成为一个素因子个数不超过a个的数与另一个原创 2014-10-20 11:25:27 · 7805 阅读 · 0 评论 -
求e^x的近似值
package com.test.common;public class TestE { public static double getE(int x) { int ncount=1; int xcount=x; double count=1; int n=1; while(n<10) { ncount=ncount*n; xcount=原创 2014-10-20 11:47:34 · 8785 阅读 · 3 评论 -
SVN提交报错
新拉的一个svn分支,更改文件后,提交直接报错。svn: E200007: Commit failed (details follow): svn: E200007: Commit failed (details follow):svn: E200007: CHECKOUT can only be performed on a version resource [at this time]原创 2016-03-21 12:56:44 · 11908 阅读 · 1 评论 -
使用netty构建http服务器
背景首先大家都知道,http是网络通信的一种,属于应用层的协议,底层使用tcp/ip模型。目前支持http的容器有apache、tomcat等等,支持http的客户端大家都知道,就是普通的浏览器。 现在的容器和浏览器都隐藏了很多底层协议细节,本文就从构建一个简单的http容器开始。nettynetty是一款高性能网络通信框架,netty是对于socket的一种封装,socket是对于tcp/ip的原创 2017-01-24 15:06:13 · 1845 阅读 · 0 评论 -
棋盘上礼物价值最大化问题-微策略2011校园招聘笔试题
棋盘上礼物价值最大化问题-微策略2011校园招聘笔试题,题目:8*8的棋盘上面放着64个不同价值的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0),一个人初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下角,请设计一个算法使其能够获得最大价值的礼物。原创 2014-03-06 17:36:27 · 1871 阅读 · 0 评论 -
最快速度求两个数组之交集算法
该题目来自58同城的二面,用最快速度求两个数组之交集算法。比如A={6,2,4,1},B={2,9,4,3},那么A&B={2,4}。文中总结出了四种解法,供大家分享探讨原创 2014-03-05 20:09:48 · 22165 阅读 · 3 评论 -
C++ 分割字符串函数,并且返回vector
C++用空格分割字符串,并且返回一个vector动态数组。功能类似于php的split和python的split函数作用。原创 2013-10-26 11:47:32 · 2298 阅读 · 0 评论 -
递归过深,栈溢出
#include #include using namespace std;//递归过深,栈溢出 int get(int n){ if(n==0)return 1; if(n==-1)return 0; return get(n-2);}int main(int argc, char *argv[]){ cout system("PA原创 2013-10-26 15:12:11 · 1136 阅读 · 0 评论 -
C++快排
#include #include #include using namespace std;//交换两个元素void exchange(int *a,int *b){int temp=*a;*a=*b;*b=temp;}//以low为划分元int sort(int *arr,int low,int high){int temp=ar原创 2013-10-27 17:11:36 · 963 阅读 · 0 评论 -
回溯的字符串模式匹配
#include #include using namespace std;//回溯的字符串模式匹配int strfind(char* str,char* mode){int i=0;int j=0;while(i{//如果两个字符相同,则继续下一个匹配if(str[i]==mode[j]){ //如果发现已经匹配到最后一个字符,则返回成原创 2013-10-28 11:22:30 · 1444 阅读 · 0 评论 -
经典算法之位运算
位运算算法总结。1 说明了基本的位运算2 给出了四种位运算的使用算法原创 2013-10-28 18:09:29 · 1647 阅读 · 1 评论 -
经典算法之KMP中next函数解析
KMP字符串模式匹配最难理解的地方在于next函数的的算法,本人结合《数据结构》严蔚敏版,给出了一个更为详细和容易理解的解析。kmp算法链接:http://blog.youkuaiyun.com/v_JULY_v/article/details/6545192原创 2013-10-28 13:51:31 · 1420 阅读 · 0 评论 -
经典算法之LCS最长公共子序列算法
采用动态规划解决LCS(最长公共子序列问题),并且给出了可以运行的算法。并且简单分析了一下,大家一起讨论一下~~原创 2013-11-15 15:28:04 · 1551 阅读 · 0 评论 -
裴波那契数列的递归和动态规划算法
通过对裴波那契数列的例子,分析了递归和动态规划算法的本质。并且说明了两种算法的区别。同时我给出了一种结合了两种算法优势的综合算法。并且简要分析了一下时间复杂度。原创 2013-11-17 10:15:38 · 6126 阅读 · 0 评论 -
经典算法之活动选择问题
一、问题描述:有一个需要使用每个资源的n个活动组成的集合S= {a,b,c,d... },资源每次只能由一个活动使用。每个活动都有一个开始时间和结束时间,且 0二、图像化描述:感觉上面的描述形式化有一些复杂,我下面给出一个图像化的傻瓜式问题描述。如上图所示,我们可以安排a,c,f,g四个活动,因为这几个活动不冲突。也可以安排a,e,g三个活动。那么活动选原创 2013-11-20 13:33:22 · 1689 阅读 · 0 评论 -
经典面试题之链表回路问题
经典面试题之链表回路问题问题描述:给定一个单链表,在O(1)空间复杂度内判断链表是否有回路。本文给出了图形化解释、证明和具体代码实现。欢迎讨论原创 2013-11-10 11:50:13 · 2582 阅读 · 0 评论 -
二叉树的先序建立、遍历、镜像、节点数、深度的具体代码实现
二叉树的先序建立、遍历、镜像、节点数、深度的具体代码实现原创 2013-11-12 16:34:14 · 1619 阅读 · 0 评论 -
字符串循环移位的三种算法
字符串操作是面试的一个热点,关于循环移位我总结了了一下,分享给大家。字符串循环移位问题,如题:将一个n位字符串进行循环移位k。例如:对于字符串abcdef循环移位k=2,则输出cdefab。本文给出了三种算法,并且提供了源代码下载原创 2013-11-12 21:06:36 · 3212 阅读 · 0 评论 -
C#统计文章中单词的重复次数,并且按照次数从高到低排序返回(无法处理中文)
/* 功能: C#统计文章中单词的重复次数,并且按照次数从高到低排序返回(无法处理中文) 例子: i am a big boy,how a bout boy? 返回boy(2),i(1),....等。 命名空间为: using System.Collections.Generic; using System.Linq; */ Dictio原创 2014-02-25 15:40:42 · 4285 阅读 · 0 评论 -
判断一个整数是否为2的整数次幂
#include "stdio.h"//判断一个数是2的整数次幂算法 输出为0则表示是 输出其他表示非2的整数次幂int two(int n){ return n & (n-1);}int main(){ printf("%d\n",two(1023)); return 0;}原创 2014-02-14 11:58:23 · 1260 阅读 · 0 评论 -
分布式计算ECHO算法(IT部落格)
package org.ustc.scst.dc.simulation.algorithms.echo; import java.awt.Color; import org.ustc.scst.dc.simulation.algorithms.echo.IntMessage;import org.ustc.scst.dc.simulation.model.Message;import原创 2014-02-26 13:57:59 · 2168 阅读 · 0 评论 -
C++笔试经典题目总结
1 在某基类中声明为 virtual 并在一个或多个派生类中被重新定 义的成员函数,virtual 函数返回类型 函数名(参数表) {函数体;},实现多态性,通过指向派生类的基类指针,访问派生类中同名覆盖成员函数。在基类声明为virtual并且在派生类重新定义的成员函数。用于实现多态性,通过指向派生类的指针来实现访问派生类的同名函数。2 虚函数#includecla转载 2014-03-04 09:25:30 · 870 阅读 · 0 评论 -
mybatis开启spring事务
1、事务spring事务的本质,是对数据库事务的代理。最终都是调用数据库连接来完成事务的开启、提交和回滚。2、模块那么在对于spring事务而言,几个不可或缺的模块就是数据源、事务管理器以及事务编程3、xml配置<!--事务管理器--> <bean id="springTransactionManager" class="org.springframework.jdbc.datasource原创 2017-05-10 12:38:08 · 2515 阅读 · 2 评论