虽然现在各种程序语言都有其各自强大的排序库函数,但是这些底层实现也都是利用这些基础或高级的排序算法。 理解这些复杂的排序算法还是很有意思的,体会这些排序算法的精妙~ 一、希尔排序(shell sort):希尔排序是基于插入排序的,区别在于插入排序是相邻的一个个比较(类似于希尔中h=1的情形)...
分类:
编程语言 时间:
2016-01-15 20:06:15
阅读次数:
158
整个dump返回的文件可以看成一棵由控件组成的多叉树,每一行代表一个控件,每一行(一个控件)开始前的空格数代表该控件在这棵树的层次,如没有空格代表的就是根节点,也就是我们常说的窗口顶端的DecorView.以上方法的算法理解我们首先要弄清楚用到的几个变量的意义:depth: 代表当前在分析的一行控件...
分类:
其他好文 时间:
2016-01-05 18:56:17
阅读次数:
135
深度优先搜索算法和广度优先搜索算法是图论中两个有意思也很实用的算法,下面我们来看看这两个算法。严书中,给出的利用深度优先搜索(Deep First Search)算法进行图的遍历伪码如下 1 Boolean visited[MAX]; //标志数组 2 Status (*VisitFunction....
分类:
编程语言 时间:
2015-12-06 22:49:03
阅读次数:
607
求最长连续子序列的长度,数字保存在数组中使用动态规划算法,理解状态转移,dp[i]表示i位置下的最大连续子序列长度。
初始状态dp[0] = 1,表示在数组下标为0的时候,它的最长子序列长度就是1,
接着从1开始从左到右扫描,如果后一个数大于前一个数,则它的最长子序列长度增加1,否则,
此位置的最长子序列长度置为1,同时记录下当前的最大子序列长度;
最后返回记录的最大连续子序列变量。代码如下:Cod...
分类:
编程语言 时间:
2015-06-14 09:34:41
阅读次数:
197
异常点检测分为novelty detection 与 outlier detection鲁棒性的高斯概率密度是novelty detection, 就是在给出的数据中, 找出一些与大部分数据偏离较远的异常数据, 我们的训练集不是纯净的, 包含异常点 outlier detection 的训练集是纯净的算法理解这个算法的思想很好理解, 就是求出训练集在空间中的重心, 和方差, 然后根据高斯概率密度估...
分类:
编程语言 时间:
2015-06-07 15:56:15
阅读次数:
2282
//rplace.c//题目:假设存在字符串“qwertyubfghsdfjjhg”,并且该字符串具有足够大的空间编写算法将其中的空格字符用“%20”代替。//要求:时间复杂度:O(n),空间复杂度:S(1)。//算法分析://要实现时间复杂度为O(n),必须采用一重循环,并且循环控制由数组长度n控制,可以采..
分类:
编程语言 时间:
2015-05-26 16:35:33
阅读次数:
210
package org.loda.graph;
import org.loda.util.In;
/**
*
* @ClassName: KosarajuSCC
* @Description: Kosaraju强连通算法
*
* 理解:原图g,逆后序order中如果a->b,那么反向图rg中如果也有a->b,表示这是...
分类:
编程语言 时间:
2015-05-25 01:03:13
阅读次数:
251
这个算法主要要弄懂三个循环的顺序关系。弗洛伊德(Floyd)算法过程:1、用D[v][w]记录每一对顶点的最短距离。2、依次扫描每个点,并以其为基点再遍历全部每一对顶点D[][]的值,看看是否可用过该基点让这对顶点间的距离更小。算法理解:最短距离有三种情况:1、两点的直达距离最短。(例如以下图)2、...
分类:
编程语言 时间:
2015-05-10 11:16:21
阅读次数:
169
汉诺塔:(Hanoi)是一种玩具,如图![这里写图片描述] (http://img.blog.csdn.net/20150430225337439)
从左到右 A B C 柱 大盘子在下, 小盘子在上, 借助B柱将所有盘子从A柱移动到C柱, 期间只有一个原则: 大盘子只能在小盘子的下面.
问题理解与描述:
1.问题的理解与描述
问题的形式化表示为:
输入:圆盘数n,3根细杆—...
分类:
编程语言 时间:
2015-05-01 09:27:31
阅读次数:
157
KMP算法理解
字符串匹配算法之KMP算法一直以来都很难理解,虽然知道要减少不必要的匹配,但是仍然不懂里面的思想,即使看着代码。后来看到(2)中博客中的解释才清晰了许多,
不至于在什么DFA,前缀表,部分匹配表等概念中迷失自己。主要的指导思想在于当发生不匹配的时候如何更有效的利用现在已经匹配的字符串的信息来加速移动过程,
部分匹配表的存在正是挖掘一个字符串中前缀和后缀中最长公共串,比...
分类:
编程语言 时间:
2015-04-14 21:33:53
阅读次数:
207