算法03-分治法 一、定义 分治法可以通俗的解释为:把一片领土分解,分解为若干块小部分,然后一块块地占领征服,被分解的可以是不同的政治派别或是其他什么,然后让他们彼此异化。 分治法的精髓: 分–将问题分解为规…
标签:数据结构
BZOJ-3648: 寝室管理(点分治+平衡树)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3648 首先这题求树或一个环套树上面的长度>=k的路径数,那么如果是树直接点分治掉没问题,考虑环套树的情况,如…
【数据库系列】| 视图和子查询
一、视图 从SQL的角度来看,视图和表是相同的,两者的区别在于表中保存的是实际的数据,而视图中保存的是SELECT语句(视图本身并不存储数据)。 使用视图,可以轻松完成跨多表查询数据等复杂操作。 可以将常用的SELECT…
哈希表
哈希表 大致介绍 1、哈希表的本质是一个数组; 2、数组中每一个元素称为一个箱子; 3、它通过把关键码值映射到表中一个位置(箱子的位置)来访问记录,以加快查找的速度; 4、映射函数叫做散列函数(也叫哈希函数),存放记录的…
基础排序算法总结(七种排序算法C代码)
排序是最基础的算法,从排序的对象来说主要分为内部排序和外部排序。内部排序主要是针对内存中的数据进行排序,外部排序针对外存如硬盘、光盘中的数据进行排序。内部排序按工作方式主要分为:插入排序(直接插入排序、希尔排序)、选择排…
iOS开发之哈希表、时间复杂度、链表
哈希表(Hash table) 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射…
安卓算法02-递归
算法02-递归 一、定义 1、思想 程序调用自身的编程技巧称为递归(recursion)。 递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的…
[Python] 算法心得—数组篇
1 寻找最大的k个数 输入包含n个整数的数组,输出其中最大的k个数。 要求:输出的数字不能重复,如果k大于可输出数字的个数,便输出该数组从大到小的不重复排列。 如: 输入数组 nums=[2,1,3,3,4,4,5] 和…
快速排序实现及pivot的选取
coursera上斯坦福的算法专项在讲到快速排序时,称其为最优雅的算法之一。快速排序确实是一种比较有效的排序算法,很多类库中也都采用了这种排序算法,其最坏时间复杂度为,平均时间复杂度为,且其不需要额外的存储空间。 基本步…
BZOJ-1296: [SCOI2009]粉刷匠(dp)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1296 又是一道水水的DP,没什么好说的,直接上代码。 代码: #include <cstdio> #i…
用遗传算法求函数最大值二:选择、交叉和变异
选择 选择(或复制)操作决定哪些个体可以进入下一代。这里采用轮盘赌法选择,这种方法比较容易实现。 在轮盘赌法中,设种群大小为n,其中个体i的适应值是,则i被选择的概率为: 显然,个体适应值越大,被选择的概率越大。 轮盘赌…
Redis基础、高级特性与性能调优
本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概览Redis提供的高级能力,并在部署、维护、性能调优等多个方面进行更深入的介绍和指导。 本文适合使用Red…