随笔分类 -  《Algorithms算法》

摘要:堆排序 1堆排序思想 堆排序的思想很简单,就是利用了堆的优点,不断的找最大值,然后删除最大值,重复操作。 首先,要构造一个二叉堆出来,我们采用自底向上的思想。 做删除root的操作(但是不是真删除,只是把root元素放到最后了) 循环直到数组有序。 我们可以发现加入的代码非常少!! 3.2堆排序代码 阅读全文
posted @ 2016-05-13 20:05 voidsky 阅读(202) 评论(0) 推荐(0)
摘要:二叉堆 1 二叉堆的定义 堆是一个完全二叉树结构(除了最底下一层,其他层全是完全平衡的),如果每个结点都大于它的两个孩子,那么这个堆是有序的。 二叉堆是一组能够用堆有序的完全二叉树排序的元素,并在数组中按照层级存储(不用数组的第一个位置) 2 二叉堆的性质 最大的元素在a[1] (root结点) 每 阅读全文
posted @ 2016-04-28 21:27 voidsky 阅读(314) 评论(0) 推荐(0)
摘要:1.优先队列的API和初等实现 做一个总结: 栈 :先进后出 队列 :先进先出 随机队列 : 随机出 优先队列:每次出来的是最大值或最小值 1.1优先队列的API 优先队列在很多场合都有用, 比如:在大量数据里,如果取前M大的数据(存储不足以存下如此大规模数据),就可以用优先队列(MinPQ来做,类 阅读全文
posted @ 2016-04-28 21:24 voidsky 阅读(299) 评论(0) 推荐(0)
摘要:《Algorithms算法》笔记:元素排序(4)——凸包问题 Algorithms算法笔记元素排序4凸包问题 凸包问题 凸包问题的应用 凸包的几何性质 Graham 扫描算法 代码 凸包问题 凸包问题就是说,找到一个最小的凸多边形能圈住所有的点。 凸包问题的应用 运动规划:找到从s到t的最短路径,最 阅读全文
posted @ 2016-04-06 23:27 voidsky 阅读(771) 评论(0) 推荐(0)
摘要:《Algorithms算法》笔记:元素排序(3)——洗牌算法 Algorithms算法笔记元素排序3洗牌算法 洗牌算法 排序洗牌 Knuth洗牌 Knuth洗牌代码 洗牌算法 洗牌的思想很简单,就是像洗扑克牌一样,对一组数据进行随机打乱,这个算法在很多应用里都非常有用,特别是对于后面需要介绍的快排来 阅读全文
posted @ 2016-04-06 23:16 voidsky 阅读(268) 评论(0) 推荐(0)
摘要:《Algorithm算法》笔记:元素排序(2)——希尔排序 Algorithm算法笔记元素排序2希尔排序 希尔排序思想 为什么是插入排序 h的确定方法 希尔排序的特点 代码 有关排序的介绍,看上一个笔记:《Algorithms算法》笔记:元素排序(1)——简单排序 希尔排序是这是本课程中出现的第一个 阅读全文
posted @ 2016-04-06 22:58 voidsky 阅读(294) 评论(1) 推荐(0)
摘要:《Algorithms算法》元素排序(1)——简单排序 Algorithms算法元素排序1简单排序 排序问题 1 回调函数 2Java中回调函数的路线图 3 全序 4 Comparable API 41 实现原则 42 例子 选择排序 1选择排序思想动画 2选择排序的内部循环不变性 3选择排序代码 阅读全文
posted @ 2016-04-06 21:58 voidsky 阅读(361) 评论(0) 推荐(0)