
算法知识点
文章平均质量分 72
龙腾四海365
IT
展开
-
归并排序--详解
归并排序时的时间复杂度为O(nlgn) 其主要思想是分治法(divide and conquer),分就是要将n个元素的序列划分为两个序列,再将两个序列划分为4个序列,直到每个序列只有一个元素,最后,再将两个有序序列归并成一个有序的序列。例如两个序列:要归并成一个有序的序列,按照我们常规的方法,我们每次从两个列表开头元素选取较小的一个,直到某一个列表到达底部,再将另原创 2014-07-25 15:31:23 · 637 阅读 · 0 评论 -
最长公共子串
LCS问题就是求两个字符串最长公共子串的问题。解法就是用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0。然后求出对角线最长的1序列,其对应的位置就是最长匹配子串的位置.下面是字符串21232523311324和字符串312123223445的匹配矩阵,前者为X方向的,后者为Y方向的。不难找到,红色部分是最长的匹配子串。通过查找位置我们得到最长的匹配子串为:原创 2014-08-04 17:01:55 · 391 阅读 · 0 评论 -
最短路径—Dijkstra算法
Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。问题描述:在无向图 G=(V,E) 中,假原创 2014-08-12 10:52:34 · 529 阅读 · 0 评论 -
STL 队列
Queue队列容器Queue队列容器是一个先进先出的线性存储表,元素的插入只能在队尾,元素的删除只能在队首。使用Queue需要声明头文件“#include ”Push():入队,即插入元素Pop():出队,即删除元素Front():读取队首元素Back():读取队尾元素Empty():判断队列是否为空Size():队列当前元素原创 2014-07-25 20:02:29 · 573 阅读 · 0 评论 -
STL 之 stack
STL之stack栈(statck)这种数据结构在计算机中是相当出名的。栈中的数据是先进后出的(First In Last Out, FILO)。原创 2014-08-08 19:21:22 · 473 阅读 · 0 评论 -
回文字符串--manacher算法
回文串定义: “回文串” 是一个正读和反读都一样的字符串, 比如 “level ” 或者 “noon”等等就是回文串。回文子串,顾名思义,即字符串中满足回文性质的子串。经常有一些题目围绕回文子串进行讨论,比如 HDOJ_3068_最长回文,求最长回文子串的长度。 朴素算法是依次以每一个字符为中心向两侧进行扩展, 显然这个复杂度是 O(N^2)的, 关于字符串的题目常用的算法有原创 2014-08-18 17:15:16 · 694 阅读 · 0 评论 -
动态数组创建总结
有些人喜欢c和c++混编,但我个人感觉c++henqian原创 2014-08-02 11:22:36 · 539 阅读 · 0 评论 -
面向对象的五个特征
面向对象的五个特征1.万事万物皆对象。 将对象视为奇特的变量,它可以存储数据,除此之外,你还可以齐奥球它在自身上执行操作。理论上将 ,你可以抽取待求解问题的任何概念化构件(狗、建筑、服务等),将其表示为程序中的对象。2.程序是对象的集合,他们通过发送消息来告知彼此所要做的。 要想请求一个对象,就必须对该对象发送一个消息。更具体的说,可以把消息想象为对某个特定对象原创 2016-08-02 17:10:08 · 541 阅读 · 0 评论 -
解决问题必搜站汇总
解决问题必搜站汇总当有疑问时,可以在 http://stackoverflow.com/ 搜索;当缺 Jar 包时,可以到 http://mvnrepository.com/搜索下载;当需要 Jar 包及源码时,可以造访:http://grepcode.com/如果你无法下载 Android Sdk,那么可以查一下全国各大学的镜像站,里面有 Andr转载 2014-12-02 20:23:53 · 546 阅读 · 0 评论 -
逆序数的几种求法
求一个数列的逆序数逆序对:数列a[1],a[2],a[3]…中的任意两个数a[i],a[j] (i,如果a[i]>a[j],那么我们就说这两个数构成了一个逆序对逆序数:一个数列中逆序对的总数如数列 3 5 4 8 2 6 9(5,4)是一个逆序对,同样还有(3,2),(5,2),(4,2)等等那么如何求得一个数列的逆序数呢?方法1:一个一个的数最简单也是最容易想到的方法转载 2014-08-11 15:34:28 · 827 阅读 · 1 评论 -
memcpy函数的用法
memcpy函数的用法原创 2014-08-08 17:06:26 · 592 阅读 · 0 评论 -
测试程序运行时间
不多说了,直接上代码,用的时候直接套用就行了原创 2014-07-31 09:45:48 · 494 阅读 · 0 评论 -
滚动数组
滚动数组原创 2014-08-04 16:15:29 · 495 阅读 · 0 评论 -
最长公共子序列问题(LCS)
最长公共子序列问题(LCS)【问题】 求两字符序列的最长公共字符子序列问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列。令给定的字符序列X=“x0,x1,…,xm-1”,序列Y=“y0,y1,…,yk-1”是X的子序列,存在X的一个严格递增下标序列,i1,…,ik-1>,使得对所有的j=0,1,…,k-1,有xij=原创 2014-08-04 16:36:31 · 677 阅读 · 0 评论