<Algorithms Unlocked>是 <算法导论>的合著者之一 Thomas H. Cormen 写的一本算法基础,算是啃CLRS前的开胃菜和辅助教材.如果CLRS的厚度让人望而生畏,这本200多页的小读本刚好合适带你入门. 书中没有涉及编程语言,直接用文字描述算法,我用 JavaScript 对书中的算法进行描述. 超越下界 之前的四个排序算法--选择排序.插入排序.归并排序.快速排序都是依赖于对排序关键字进行的比较.他们的决策依据都是"如果这个元素的排序关键字…
<Algorithms算法>笔记:元素排序(4)——凸包问题 Algorithms算法笔记元素排序4凸包问题 凸包问题 凸包问题的应用 凸包的几何性质 Graham 扫描算法 代码 凸包问题 凸包问题就是说,找到一个最小的凸多边形能圈住所有的点. 凸包问题的应用 运动规划:找到从s到t的最短路径,最短路径肯定在凸包上 最远的一对:相隔最远的点对肯定在凸包上 凸包的几何性质 可以通过逆时针遍历所有凸包顶点 凸包的顶点是关于p的极角的递增序列,而p有最小的y坐标. Graham 扫描算法 选择y坐…
<Algorithms算法>笔记:元素排序(3)——洗牌算法 Algorithms算法笔记元素排序3洗牌算法 洗牌算法 排序洗牌 Knuth洗牌 Knuth洗牌代码 洗牌算法 洗牌的思想很简单,就是像洗扑克牌一样,对一组数据进行随机打乱,这个算法在很多应用里都非常有用,特别是对于后面需要介绍的快排来说,这个算法直接影响了快排的效率. 洗牌的算法这里提了2种 排序洗牌 思想很简单,先对每个元素生成一个随机数,然后对这些随机数进行排序 排序前 排序后 Knuth洗牌 一个更简单的算法,不用sort…
目录 1 问题描述 2 解决方案 2.1比较计数排序 2.2 分布计数排序   1 问题描述 给定一组数据,请使用计数排序,得到这组数据从小到大的排序序列. 2 解决方案 2.1比较计数排序 下面算法的时间复杂度为O(n^2),空间复杂度为O(n).此方法对于任意一组数据均可排序. 具体代码如下: package com.liuzhen.practice; public class Main { public void comparisonCountingSort(int[] A) { int[…
<Algorithms算法>元素排序(1)——简单排序 Algorithms算法元素排序1简单排序 排序问题 1 回调函数 2Java中回调函数的路线图 3 全序 4 Comparable API 41 实现原则 42 例子 选择排序 1选择排序思想动画 2选择排序的内部循环不变性 3选择排序代码 插入排序 1插入排序思想动画 2插入排序的内部循环不变性 3插入排序代码 4 插入排序分析 1.排序问题 排序问题在日常生活中非常常见,例如最简单的,学生名单,就有多种排序,名字,成绩,号码,宿舍号…
<Algorithm算法>笔记:元素排序(2)——希尔排序 Algorithm算法笔记元素排序2希尔排序 希尔排序思想 为什么是插入排序 h的确定方法 希尔排序的特点 代码 有关排序的介绍,看上一个笔记:<Algorithms算法>笔记:元素排序(1)——简单排序 希尔排序是这是本课程中出现的第一个非平凡的排序算法. 希尔排序思想 希尔的思想也很简单就是一个h-sort的插入算法——每相邻h个元素进行插入排序 为什么是插入排序? 如果h比较大,那么子数组会很小,用插入效率高 如果h…
<Algorithms Unlocked>是 <算法导论>的合著者之一 Thomas H. Cormen 写的一本算法基础,算是啃CLRS前的开胃菜和辅助教材.如果CLRS的厚度让人望而生畏,这本200多页的小读本刚好合适带你入门. 书中没有涉及编程语言,直接用文字描述算法,我用 JavaScript 对书中的算法进行描述. 二分查找 在排好序的数组中查找目标值x.在p到r区间中,总是取索引为q的中间值与x进行比较,如果array[q]大于x,则比较p到q-1区间,否则比较q+1到…
<Algorithms Unlocked>是 <算法导论>的合著者之一 Thomas H. Cormen 写的一本算法基础. 书中没有涉及编程语言,直接用文字描述算法,我用 JavaScript 对书中的算法进行描述. 循环和查找 首先是三个简单的查找.目的是从数组中查找一个特定的值. array: 一个数组 x: 要查找的值 // 简单的线性查找 function linearSearch(array, x) { let answer = 'NOT-FOUND'; for (le…
搜狐视频的屌丝男士第二季大结局了,惊现波多野老师,怀揣着无比鸡冻的心情啊,可惜随着剧情的推进发展,并没有出现期待中的屌丝奇遇,大鹏还是没敢冲破尺度的界线.想百度些种子吧,又不想让电脑留下污点证据,要知道大洋彼岸有个棱镜计划,只好作罢.不如看看书吧,书中自有颜如玉. 开始本次读书笔记前,先扯两个哲学观点,提高下境界.第一个就是<Data-Intensive Text Processing with mapReduce>读书笔记前言中谈到的,大数据产生了大价值,对应的思想很简单:量变导致了质变.第…
由于第三章的内容比较多,这里我们拆分成两篇读书笔记来记录.上一章我们聊了聊如何数据库是如何实现存储和检索的,今天这篇我们继续来看看OLTP与OLAP存储引擎的区别与联系. 1.OLTP与OLAP 联机事务处理过程(On-Line Transaction Processing)也就是我们通常称之的OLTP. 联机分析处理过程(On-Line Analysis Processing)则被称为OLAP. 在文中,作者列出了两类处理过程的区别,我们来一一梳理一下: OLTP的应用通常读写较少的数据,处理…