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

浙公网安备 33010602011771号