![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 82
AdolphLua
这个作者很懒,什么都没留下…
展开
-
最长公共子序列
最长公共子序列是一个很经典的动态规划问题,最近正在学习动态规划,所以拿来这里再整理一下。这个问题在《算法导论》中作为讲动态规划算法的例题出现。 动态规划,众所周知,第一步就是找子问题,也就是把一个大的问题分解成子问题。这里我们设两个字符串A、B,A = "a0, a1, a2, ..., am-1",B = "b0, b1, b2, ..., bn-1"。(1)如果am-1 ==转载 2016-04-25 20:10:48 · 178 阅读 · 0 评论 -
八大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键转载 2016-07-02 18:57:14 · 239 阅读 · 0 评论 -
数据同步算法(rsync和RDC)
1、引言 基于LAN或WAN的网络应用之间进行数据传输或者同步非常普遍,比如远程数据镜像、备份、复制、同步,数据下载、上传、共享等等,最为简单的做法自然就是对数据进行完全复制。然而,数据在网络上来回被复制多次后就会存在大量副本,很多情形下这些文件副本之间仅有很小的差异,很可能是从同一个文件版本演化而来。如果对文件进行完全复制,在文件较大的情况下,会占用大量网络带宽,同步时间也会较长转载 2016-07-23 19:32:07 · 6489 阅读 · 1 评论 -
两个等长数组2n个数,找出中位数
经典面试题: 题目大概是这样的: 已知两个给定的整数数组,数组长度都是n, 记为x[n], y[n]。 两个数组已被排序(升序),求这2n个整数的中位数。嘿嘿,看到这个问题,有一点必须要知道:因为整数一共有2n个,所以根据小学数学知识, 中位数是用"中间"的两个数的和 再除以2得到的。 这样就可以把问题转化为在 2n个整数里查找2个"大小适中"的整数。那么最容易想到转载 2016-04-23 23:28:00 · 931 阅读 · 0 评论 -
红黑树原理和算法详细介绍
概要目录1 红黑树的介绍2 红黑树的应用3 红黑树的时间复杂度和相关证明4 红黑树的基本操作(一) 左旋和右旋5 红黑树的基本操作(二) 添加6 红黑树的基本操作(三) 删除 概述:R-B Tree,又称为“红黑树”。本文参考了《算法导论》中红黑树相关知识,加之自己的理解,然后以图文的形式对红黑树进行说明。本文的主要内容包转载 2016-04-23 22:17:36 · 304 阅读 · 0 评论 -
红黑树并没有我们想象的那么难(下)
红黑树并没有我们想象的那么难(下)红黑树并没有我们想象的那么难 上、下两篇已经完成, 希望能帮助到大家.红黑树并没有我们想象的那么难(上): http://daoluan.net/blog/rbtree-is-not-difficult/红黑树并没有我们想象的那么难(下): http://daoluan.net/blog/rbtree-is-not-difficult-2/转载 2016-04-23 21:56:22 · 402 阅读 · 0 评论 -
红黑树并没有我们想象的那么难(上)
红黑树并没有我们想象的那么难(上)红黑树并没有我们想象的那么难 上、下两篇已经完成, 希望能帮助到大家.红黑树并没有我们想象的那么难(上): http://daoluan.net/blog/rbtree-is-not-difficult/红黑树并没有我们想象的那么难(下): http://daoluan.net/blog/rbtree-is-not-difficult-2/转载 2016-04-23 21:55:01 · 398 阅读 · 0 评论 -
80秒验证13亿个身份证号码,包含省市县验证
我写了一个验证身份证号码的程序,它是以一定内存空间(大概100M)换取cpu消耗,然后它的运算量就降低了,前十四位的验证就相当于转换类型再查表一样,所以它的验证号码速度比一般的方式快。如果还不明白就说明你写框架写多了,或者你不了解java基础。测试结果只代表算法效率,测一个号码是因为正确号码运算次数基本相同,如果你们用自己的电脑测,13亿次循环应该不到1分钟。这种设计思路,也可以套用其他格式信息验转载 2016-04-23 17:21:13 · 17022 阅读 · 2 评论 -
求二进制数中1的个数
求二进制数中1的个数本文主要转载自zzd的算法-求二进制数中1的个数。除此之外,本文还对原文中供的几种算法进行测试以及做了一定的分析。问题描述任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4。这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,下面介绍了几种方法来实现这道题,相信转载 2016-04-23 17:07:51 · 976 阅读 · 0 评论 -
哈希函数
在大多数实际项目中,对于哈希函数的选择,往往并不怎么在意,讲究的是能用就行,但在性能追求极致的环境里,哈希函数却还是一个考察重点。在Web服务器lighttpd里,使用的是一个非常流行的DJB hash function,即俗称“Times33”的哈希算法,这个算法很简单,就是不断的乘33。看实际代码: /* the famous DJB h转载 2016-05-26 19:47:34 · 808 阅读 · 0 评论 -
初识A*算法
初识A*算法 写这篇文章的初衷是应一个网友的要求,当然我也发现现在有关人工智能的中文站点实在太少,我在这里抛砖引玉,希望大家都来热心的参与。 还是说正题,我先拿A*算法开刀,是因为A*在游戏中有它很典型的用法,是人工智能在游戏中的代表。 A*算法在人工智能中是一种典型的启发式搜索算法,为了说清楚A转载 2016-04-17 13:36:29 · 247 阅读 · 0 评论 -
A*算法
第一部分:A*算法简介 写这篇文章的初衷是应一个网友的要求,当然我也发现现在有关人工智能的中文站点实在太少,我在这里 抛砖引玉,希望大家都来热心的参与。 还是说正题,我先拿A*算法开刀,是因为A*在游戏中有它很典型的用法,是人工智能在游戏中的代表。 A*算法在人工智能中是一种典型的启发式搜索算法,为了说清楚A*算法,我看还是先说说何谓启发式算法。 一、何谓转载 2016-04-17 13:34:02 · 2431 阅读 · 0 评论 -
一致性hash算法(consistenthashing)
consistent hashing算法早在1997年就在论文Consistenthashing and random trees中被提出,目前在cache系统中应用越来越广泛;1基本场景比如你有N个cache服务器(后面简称cache),那么如何将一个对象object映射到N个cache上呢,你很可能会采用类似下面的通用方法计算object的hash值,然后均匀的映射到到N个cach转载 2016-05-11 10:57:45 · 222 阅读 · 0 评论 -
跟着编程之美学算法——最长递增子序列
本篇博客要继续解决一个升级的问题——最长递增子序列问题定义:给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱)。例如:给定一个长度为6的数组A{5, 6, 7, 1, 2, 8},则其最长的单调递增子序列为{5,6,7,8},长度为4.解法一:最长公共子序列法:仔细思考上面的问题,其实可以把上面的问题转化为求最长公共子序列的问题。原数组为A{5, 6转载 2016-04-25 20:14:38 · 851 阅读 · 0 评论 -
面试经典二叉树算法
#include <iostream>#include <cstdlib>#include <cassert>#include <stack>#include <cmath>#include <queue>#include <list>using namespace std;//面试经典二叉树算法typedef char ElemType;#define END '#'templ原创 2016-09-10 23:16:28 · 923 阅读 · 0 评论