随笔分类 -  Algorithm

两种建立堆的方法HeapInsert & Heapify
摘要:参考 "堆排序中两种建堆方法的比较" 第一种方法HeapInsert 它可以假定我们事先不知道有多少个元素,通过不断往堆里面插入元素进行调整来构建堆。 它的大致步骤如下: 1. 首先增加堆的长度,在最末尾的地方加入最新插入的元素。 2. 比较当前元素和它的父结点值,如果比父结点值大,则交换两个元素, 阅读全文

posted @ 2019-03-19 17:08 Frank_Allen 阅读(5358) 评论(2) 推荐(1)

二分查找相关问题总结
摘要:参考 "二分查找各种情况大总结" 二分查找原始版 在有序数组中查找某个数,找到返回数的下标,存在多个返回任意一个即可,没有返回 1。所有程序采用左右均为闭区间,即函数中n为最后一个元素下标,而不是元素个数。典型代码如下: java public int firstGreat(int[] a, int 阅读全文

posted @ 2019-03-18 10:17 Frank_Allen 阅读(335) 评论(0) 推荐(0)

动态规划和分治法的区别
摘要:动态规划和分治法的区别 动态规划也是一种分治思想(比如其状态转移方程就是一种分治),但与分治算法不同的是,分治算法是把原问题分解为若干个子问题,自顶向下求解子问题,合并子问题的解,从而得到原问题的解。动态规划也是把原始问题分解为若干个子问题,然后自底向上,先求解最小的子问题,把结果存在表格中,在求解 阅读全文

posted @ 2019-03-18 08:02 Frank_Allen 阅读(19953) 评论(0) 推荐(2)

算法4-5.1.1键索引计数法
摘要:```python test_case =[('Anderson',2),('Brown',3),('Davis',3),('Garcia',4),('Harris',1),('Jackson',3),('Johnson',4), ('Jones',3),('Martin',1),('Martinez',2),('Miller',2),('Moore',1),('Robin... 阅读全文

posted @ 2019-03-10 13:45 Frank_Allen 阅读(152) 评论(0) 推荐(0)

导航