Algorithm
文章平均质量分 68
caoguanling
Coding for living and fun.
展开
-
BubbleSort
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名。冒泡排序算法的运作如下:(从后往前)比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没原创 2014-04-30 17:12:11 · 448 阅读 · 0 评论 -
二叉树的应用详解 - 数据结构
概述:平衡树——特点:所有结点左右子树深度差≤1排序树——特点:所有结点“左小右大字典树——由字符串构成的二叉排序树判定树——特点:分支查找树(例如12个球如何只称3次便分出轻重)带权树——特点:路径带权值(例如长度)最优树——是带权路径长度最短的树,又称 Huffman树,用途之一是通信中的压缩编码。1. 二叉排序树(二叉查找树 B转载 2014-07-17 13:05:39 · 647 阅读 · 0 评论 -
二叉树遍历 - 数据结构
1. 二叉树遍历1.1 遍历算法:1.先序遍历的递归算法定义: 若二叉树非空,则依次执行如下操作: (1) 访问根结点; (2) 遍历左子树; (3) 遍历右子树。2.中序遍历的递归算法定义: 若二叉树非空,则依次执行如下操作: (1)遍历左子树; (2)访问根结点;转载 2014-07-17 13:09:44 · 475 阅读 · 0 评论 -
图的应用详解-数据结构
概述最小生成树——无向连通图的所有生成树中有一棵边的权值总和最小的生成树拓扑排序 ——由偏序定义得到拓扑有序的操作便是拓扑排序。建立模型是AOV网关键路径——在AOE-网中有些活动可以并行地进行,所以完成工程的最短时间是从开始点到完成点的最长路径的长度,路径长度最长的路径叫做关键路径(Critical Path)。最短路径——最短路径问题是图研究中的一个经典算法问题转载 2014-07-17 11:45:55 · 717 阅读 · 0 评论 -
回溯法 -数据结构与算法
1.回溯法算法思想:定义: 回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。1、回溯法适用:有许多问题,当需要找出它的解集(全部解)或者要求回答什么解是满足某些约束条件的最优解时转载 2014-07-17 13:04:06 · 717 阅读 · 0 评论 -
数据结构-栈和队列
1.栈1.1 栈的定义栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。如下所示:结论:后进先出(Last In First Out),简称为LIFO线性表。栈的基本运算有六种:构造空栈:InitStack(S)、判栈空: StackEmpty(S)、判栈满: StackFull转载 2014-07-17 13:09:15 · 359 阅读 · 0 评论 -
External sorting
External sorting is a term for a class of sorting algorithms that can handle massive amounts of data. External sorting is required when the data being sorted do not fit into the main memory of a c转载 2014-06-06 14:21:14 · 1236 阅读 · 0 评论 -
八大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,转载 2014-07-17 11:36:39 · 440 阅读 · 0 评论 -
海量数据处理:十道面试题与十个海量数据处理方法总结
海量数据处理:十道面试题与十个海量数据处理方法总结作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。有任何问题,欢迎随时交流、指正。出处:http://blog.csdn.net/v_JULY_v。 第一部分、十道海量数据处理面试题1、海量日志数据转载 2014-07-18 15:06:55 · 329 阅读 · 0 评论 -
B-树和B+树的应用:数据搜索和数据库索引
B-树1 .B-树定义B-树是一种平衡的多路查找树,它在文件系统中很有用。定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至多有m 棵子树;⑵若根结点不是叶子结点,则至少有两棵子树;⑶除根结点之外的所有非终端结点至少有[m/2] 棵子树;⑷所有的非终端结点中包含以下信息数据: (n,A0,K1,A转载 2014-07-17 11:50:57 · 327 阅读 · 0 评论 -
海量数据处理算法—Bloom Filter
1. Bloom-Filter算法简介 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。 Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有转载 2014-07-16 17:56:04 · 375 阅读 · 0 评论 -
数据结构-线性表
1. 线性表:n个数据元素的有序集合。线性表是一种常用的数据结构。在实际应用中,线性表都是以栈、队列、字符串、数组等特殊线性表的形式来使用的。由于这些特殊线性表都具有各自的特性,因此,掌握这些特殊线性表的特性,对于数据运算的可靠性和提高操作效率都是至关重要的。 线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的结点,有且仅有一个开始结点没有前驱但有一个后继结点,转载 2014-07-17 13:13:28 · 345 阅读 · 0 评论 -
和最大的连续子数组
public class SubArrayWithMaxSum { public static int maxSumofSubArray(int[] src) { int curSum = 0; int maxSum = src[0]; for (int i = 0; i < src.length; i++) { if (curSum >= 0) { curSum原创 2014-04-11 12:55:45 · 428 阅读 · 0 评论 -
(前、中、后)序遍历二叉树的递归、非递归算法!
[java] view plaincopypackage tree; import java.util.Stack; // 二叉树节点 class BTNode { private char key; private BTNode left, right; public BTNode(ch转载 2014-04-11 11:25:49 · 502 阅读 · 0 评论 -
Binary Search(二分法查找)
/** * Searches the specified array of ints for the specified value using the * binary search algorithm. The array must be sorted (as * by the {@link #sort(int[])} method) prior to maki转载 2014-04-24 17:01:39 · 545 阅读 · 0 评论 -
遍历文件目录结构
public class TraverseDirectory { public static void traverse(File file) { LinkedList queue = new LinkedList<>(); queue.push(file); while (!queue.isEmpty()) { File f = queue.pop(); Syste原创 2014-04-11 12:58:08 · 569 阅读 · 0 评论 -
Mergesort in Java
1. Mergesort1.1. OverviewThe Mergesort algorithm can be used to sort a collection of objects. Mergesort is so calleddivide and conquer algorithm. Divide and conquer algorithms divide t转载 2014-04-11 17:09:05 · 552 阅读 · 0 评论 -
海量数据处理算法—Bit-Map
1. Bit Map算法简介 来自于《编程珠玑》。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。2、 Bit Map的基本思想 我们先来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这转载 2014-07-15 17:38:27 · 461 阅读 · 0 评论 -
图的遍历 - 数据结构
概述图的遍历是指从图中的任一顶点出发,对图中的所有顶点访问一次且只访问一次。图的遍历操作和树的遍历操作功能相似。图的遍历是图的一种基本操作,图的其它算法如求解图的连通性问题,拓扑排序,求关键路径等都是建立在遍历算法的基础之上。由于图结构本身的复杂性,所以图的遍历操作也较复杂,主要表现在以下四个方面:① 在图结构中,没有一个“自然”的首结点,图中任意一个顶点都可作为第一个被访转载 2014-07-17 11:48:12 · 571 阅读 · 0 评论 -
查找 -数据结构
几种查找算法:顺序查找,折半查找,分块查找,散列表一、顺序查找的基本思想: 从表的一端开始,向另一端逐个按给定值kx 与关键码进行比较,若找到,查找成功,并给出数据元素在表中的位置;若整个表检测完,仍未找到与kx 相同的关键码,则查找失败,给出失败信息。说白了就是,从头到尾,一个一个地比,找着相同的就成功,找不到就失败。很明显的缺点就是查找效率低。【适用转载 2014-07-17 11:44:47 · 426 阅读 · 0 评论 -
教你如何迅速秒杀掉:99%的海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的转载 2014-07-18 15:12:23 · 457 阅读 · 0 评论