算法与实现
F_Guardian
这个作者很懒,什么都没留下…
展开
-
【算法与实现】8大排序详解
1.冒泡法排序算法描述:冒泡排序是一种交换排序,主要思想就是比较相邻元素,然后将较小的元素交换到前面,较大的元素交换到后面。 稳定性描述:由于交换是逐个进行的,且相等的元素不进行交换,所以冒泡法排序是一种稳定排序算法。 2.直接选择排序算法描述:直接选择排序是一种选择排序,主要思想是在给定序列中选择最小的元素,与序列中第1个元素进行交换,然后在余下的元素中选择总序列中原创 2014-05-19 18:05:22 · 818 阅读 · 0 评论 -
【算法与实现】动态规划(基本思想)
动态规划(基本思想)一、动归的基本思路 案例:数字三角形 POJ1163在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或右下走。只需要求出这个最大和即可,不必给出具体路径。 思路:如果简单的用递归的方法来实现效率,在提交时会超时,应为不做任何处理的递归中进行了太多的重复计算,解决方法有2个,一个是记忆型递归原创 2014-11-30 00:07:57 · 1239 阅读 · 0 评论 -
【算法与实现】线段树&树状数组(下)
线段树&树状数组(下)二、树状数组 1. 结构描述: 对于序列a,我们设一个数组C满足下列条件:① C[i]=a[i-2^k+1]+ …+a[i]② K为i在二进制下末尾0的个数③ 2^k就是i保留最右边的1,其余位全变0④ i从1开始计算则有:C即为a的树状数组 对于i,如何求2^k?2^k=i&(i^(原创 2014-09-30 01:26:25 · 790 阅读 · 0 评论 -
【算法与实现】线段树&树状数组(上)
线段树&树状数组(上)一、线段树 1. 结构描述:线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)2],右儿子表示的区间为[(a+b)2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为N,即整个线段区间的长度。使用线段树可以快速的原创 2014-09-30 00:24:29 · 1613 阅读 · 1 评论