博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  数据结构+算法设计与分析

1

摘要:常用排序算法的C++实现 1 #include 2 using namespace std; 3 void swap(int &i,int &j)//实现i,j交换的函数 4 { 5 i=i^j; 6 j=i^j; 7 i=i^j; 8 } 9 void D... 阅读全文

posted @ 2015-04-20 18:11 xymaqingxiang 阅读(233) 评论(0) 推荐(0) 编辑

摘要:本文转自:STL中的排序算法1.所有STL sort算法函数的名字列表:函数名 功能描述sort 对给定区间所有元素进行排序stable_sort 对给定区间所有元素进行稳定排序partial_sort 对给定区间所有元素部分排序partial_so... 阅读全文

posted @ 2015-04-20 18:08 xymaqingxiang 阅读(229) 评论(0) 推荐(0) 编辑

摘要:问题导读 1 字符串和数组 2 链表 3 树 4 图 5 排序 6 递归 vs 迭代 7 动态规划 8 位操作 9 概率问题10 排列组合11 其他 -- 寻找规律英文版以下从Java角度解释面试常见的算法和数据结构:字符串,链表,树,图,排序,递归 vs. 迭代,动态规划,位操作,概率问题,排列组... 阅读全文

posted @ 2015-04-16 09:39 xymaqingxiang 阅读(552) 评论(0) 推荐(0) 编辑

摘要:准备:字符串比大小:比的就是字符串里每个字符的ASCII码的大小。(其实这样的比较没有多大的意义,我们关心的是字符串是否相等,即匹配等)字符串的存储结构:同线性表(顺序存储+链式存储) 顺序存储结构是一组地址连续的存储单元来存储字符串中的字符序列;按照预定义的大小,为每个定义的字符串变量分配一个固... 阅读全文

posted @ 2015-04-06 22:17 xymaqingxiang 阅读(429) 评论(0) 推荐(0) 编辑

摘要:积累:最值得阅读学习的 10 个 C 语言开源项目代码改变计算技术的 9 个伟大算法程序员选修课丨追妹子的各种算法追MM 和设计模式:趣解 23 种设计模式设计高可用性、容错和数据隔离的Hadoop集群题库:程序员面试:电话面试问答Top 50程序员面试笔试宝典学习记录(一)百度2015校园招聘面试... 阅读全文

posted @ 2015-03-31 21:28 xymaqingxiang 阅读(218) 评论(0) 推荐(0) 编辑

摘要:董的博客:数据机构与算法合集背包问题应用(2011-08-26)数据结构之红黑树(2011-08-20)素数判定算法(2011-06-26)算法之图搜索算法(一)(2011-06-22)算法之排列与组合算法(2011-06-21)数据结构之位图(2011-05-22)数据结构之AVL树(2011-0... 阅读全文

posted @ 2015-03-31 18:14 xymaqingxiang 阅读(185) 评论(0) 推荐(0) 编辑

摘要:浅析PageRank算法本文首先会讨论搜索引擎的核心难题,同时讨论早期搜索引擎关于结果页面重要性评价算法的困境,借此引出PageRank产生的背景。第二部分会详细讨论PageRank的思想来源、基础框架,并结合互联网页面拓扑结构讨论PageRank处理Dead Ends及平滑化的方法。第三部分讨论T... 阅读全文

posted @ 2015-03-24 10:18 xymaqingxiang 阅读(123) 评论(0) 推荐(0) 编辑

摘要:Consistent hashing一致性哈希算法及其在分布式系统中的应用Consistent Hashing一致性哈希库libconhash的使用与实现 阅读全文

posted @ 2015-03-24 10:09 xymaqingxiang 阅读(186) 评论(0) 推荐(0) 编辑

摘要:博文链接 阅读全文

posted @ 2015-03-24 10:07 xymaqingxiang 阅读(383) 评论(0) 推荐(0) 编辑

摘要:课本上常见的快速排序都是选择一个枢纽元(Pivot),基于这个枢纽元从前后双向扫描分成大于枢纽元和小于枢纽元的。而从JDK 7开始,java.util.Arrays.sort()使用双基准快速排序(Dual-Pivot Quicksort)作为实现。传统快速排序:选择枢纽元pivot,有很多种选法,... 阅读全文

posted @ 2015-03-24 10:00 xymaqingxiang 阅读(2676) 评论(0) 推荐(0) 编辑

摘要:1、图的m着色问题: 1 /* 2 *问题描述:给定无向连通图G和m种不同的颜色。用这些颜色为图G的各个顶点着色,每个顶点着一种颜色。是否有一种着色法使G中每条边的两个顶点着不同的颜色。 3 * 这个问题是图的m可着色判定问题。若一个图最少需要m中颜色才能使图中每条边连接的2个顶... 阅读全文

posted @ 2014-06-13 19:00 xymaqingxiang 阅读(802) 评论(0) 推荐(0) 编辑

摘要:概述: 最大团问题(Maximum Clique Problem, MCP)是图论中一个经典的组合优化问题,也是一类NP完全问题。最大团问题又称为最大独立集问题(Maximum Independent Set Problem)。目前,求解MCP问题的算法主要分为两类:确定性算法和启发式算法。确定性... 阅读全文

posted @ 2014-05-22 10:56 xymaqingxiang 阅读(8146) 评论(0) 推荐(0) 编辑

摘要:问题描述: 在n*n的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在n*n格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一列或同一斜线。盲目的迭代枚举: 1 /* 2 *作者:xymaqingxiang 3 *... 阅读全文

posted @ 2014-05-16 15:40 xymaqingxiang 阅读(1573) 评论(0) 推荐(1) 编辑

摘要:问题描述: 给定n个作业的集合J=(J1,J2,... ,Jn)。每一个作业Ji都有两项任务分别在2台机器上完成。每个作业必须先有机器1处理,然后再由机器2处理。作业Ji需要机器j的处理时间为tji。对于一个确定的作业调度,设Fji是作业i在机器j上完成处理时间。则所有作业在机器2上完成处理时间和... 阅读全文

posted @ 2014-05-15 11:52 xymaqingxiang 阅读(1919) 评论(0) 推荐(0) 编辑

摘要:问题描述: 输入一个整数,返回其二进制表示中最低的一位为1的下标值。 很多CPU都在硬件层面直接提供该指令,例如,i386的BSF指令。但是,如果硬件没有提供该指令,又当如何。来看kernel中的算法: 应用分治思想进行依序判断..... 1 int __ffs(int x) 2 ... 阅读全文

posted @ 2014-05-01 18:09 xymaqingxiang 阅读(645) 评论(0) 推荐(0) 编辑

摘要:0-1背包问题: 描述:给定n中物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为c,问应如何选择装入背包中的物品,使得装入背包中的物品总价值最大? 0-1背包问题是一个特殊的整数规划问题。 设所给0-1背包问题的子问题; 其最优值为m(i,j),即m(... 阅读全文

posted @ 2014-05-01 17:16 xymaqingxiang 阅读(661) 评论(0) 推荐(0) 编辑

摘要:学习要点···理解回溯法的深度优先搜索策略···掌握用回溯法解题的算法框架: (1)递归回溯 (2)迭代回溯 (3)子集树算法框架 (4)排列数算法框架···应用范例:……引入: 寻找问题的解的一种可靠的方法是首先列出所有候选解,然后依次检查每一个,在检查完所有或部分候选解后,即可找到所需... 阅读全文

posted @ 2014-05-01 16:47 xymaqingxiang 阅读(1389) 评论(0) 推荐(0) 编辑

摘要:学习要点:1、概念2、基本要素(+与动态规划算法的差异)3、应用范例:(1)活动安排问题(2)最优装载问题(3)哈夫曼编码(4)最优服务次序问题(5)最小生成树(6)最大边权值最小的生成树(7).......1、概念贪心算法总是作出当前看来是最好的选择。也就是说贪心算法并不从整体最优上加以考虑,它所... 阅读全文

posted @ 2014-04-29 21:35 xymaqingxiang 阅读(1301) 评论(0) 推荐(0) 编辑

摘要:引入:最长公共子序列常用于解决字符串的相似度问题。最长公共子序列(LongestCommonSubsequence,LCS)与最长公共字串(LongestCommonSubstring):子串是串的一个连续的部分,子序列则是从不改变序列顺序,而从序列中去掉任意多个元素而获得的新的序列;也就是说,子串... 阅读全文

posted @ 2014-04-29 21:07 xymaqingxiang 阅读(370) 评论(0) 推荐(0) 编辑

摘要:Q:何为主元素:设T[0:n-1]是n个元素的数组,对任意一个元素x,设S(x)={i|T[i]=x}。当|S(x)|>n/2时,称x为T的主元素。算法实现:1、快排+判断中位数2、分治思想(分解、递归实现)3、线性算法(主元素个数大于n/2)方法一:针对有序数组,若存在主元素,则主元素肯定是中位数... 阅读全文

posted @ 2014-03-21 22:16 xymaqingxiang 阅读(2871) 评论(1) 推荐(2) 编辑

1