算法与数据结构
算法与数据结构
BrianLeeLXT
这个作者很懒,什么都没留下…
展开
-
牛顿迭代法求平方根
原文地址 http://brianleelxt.top/2018/07/21/newton_sqrt/Sedgewick的《Algorithm》第一章有一段使用牛顿迭代法计算平方根的代码,开始没理解代码的意思,上网查阅资料后搞清楚了原理,并整理了自己的思路。思路要求 ccc 的平方根 xxx ,首先设函数 y=x2−cy=x2−cy=x^2-c ,当 y=0y=0y=0 时,xx...原创 2018-07-22 10:52:53 · 941 阅读 · 0 评论 -
《Algorithm》笔记:栈
原文地址:http://brianleelxt.top/2018/07/25/Stack/《Algorithm》(Sedgewick)笔记:栈特点基于后进先出(LIFO)策略APIpublic class Stack<Item> implements Iterable<Item> Stack() 创建一个空栈 v...原创 2018-08-22 17:13:31 · 142 阅读 · 0 评论 -
《Algorithm》笔记:队列
原文地址:http://brianleelxt.top/2018/07/26/Queue/《Algorithm》(Sedgewick)笔记:队列目的用集合保存元素的同时保存它们的相对顺序:使它们入列顺序和出列顺序相同特点基于先进先出(FIFO)策略APIpublic class Queue<Item> implements Iterable&...原创 2018-08-22 17:15:13 · 137 阅读 · 0 评论 -
《Algorithm》笔记:背包
原文地址:http://brianleelxt.top/2018/07/27/Bag/《Algorithm》(Sedgewick)笔记:背包目的帮助用例收集元素并迭代遍历所有收集到的元素。用例也可以检查背包是否为空或者获取背包中元素的数量。特点迭代的顺序不确定且与用例无关不支持从中删除元素APIpublic class Bag<Item> ...原创 2018-08-22 17:16:42 · 114 阅读 · 0 评论 -
《Algorithm》笔记:堆与优先队列
原文地址:http://brianleelxt.top/2018/08/13/heapandPQ/《Algorithm》(Sedgewick)笔记:堆与优先队列堆定义堆的每个结点都大于等于两个子结点,这称为堆有序根结点是堆有序的二叉树中的最大结点一棵大小为 NNN 的完全二叉树的高度为 ⌊lgN⌋+1⌊lgN⌋+1\lfloor lgN\rfloor+1 ...原创 2018-08-22 17:29:03 · 193 阅读 · 0 评论 -
《Algorithm》笔记:快速排序
原文地址:http://brianleelxt.top/2018/08/10/quickSort/《Algorithm》(Sedgewick)笔记:快速排序原理快速排序是一种分治的排序算法通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变...原创 2018-08-22 17:26:59 · 1336 阅读 · 1 评论 -
《Algorithm》笔记:归并排序
原文地址:http://brianleelxt.top/2018/08/06/mergeSort/《Algorithm》(Sedgewick)笔记:归并排序原理归并将两个有序数组归并成一个单一的有序数组归并排序归并排序是一种递归的算法,采用分而治之的思想,持续地将一个数组分成两半。如果数组为空或只有一个元素,则此子数组被排序好(基本情况)。如果数组里元...原创 2018-08-22 17:25:29 · 179 阅读 · 0 评论 -
《Algorithm》笔记:希尔排序
原文地址:http://brianleelxt.top/2018/08/05/shellsort/《Algorithm》(Sedgewick)笔记:希尔排序原理改进了插入排序,交换不相邻的元素以对数组的局部进行排序,并最终用插入排序将局部有序的数组排序希尔排序的思想是使数组中任意间隔为h的元素都是有序的,这样的数组被称为h有序数组。换句话说,一个h有序数组就是h个互相独立的...原创 2018-08-22 17:23:04 · 122 阅读 · 0 评论 -
《Algorithm》笔记:冒泡排序
原文地址:http://brianleelxt.top/2018/08/03/Bubble/原理比较相邻的元素,如果第一个比第二个大,交换这两个元素对每一对相邻元素进行同样的工作,从开始第一对到结尾最后一对。这步做完后,最后的元素会是最大的数重复以上步骤,除了已选出的元素,直到没有任何一对元素需要比较,则序列有序复杂度时间复杂度O(n2)O(n2)O(n^2...原创 2018-08-22 17:21:41 · 127 阅读 · 0 评论 -
《Algorithm》笔记:插入排序
原文地址:http://brianleelxt.top/2018/08/02/InsertionSort/《Algorithm》(Sedgewick)笔记:插入排序原理将每一个元素插入到其他已经有序的元素中的适当位置为了给要插入的元素腾出空间,需要将其余所有元素在插入之前都向右移动一位复杂度时间复杂度O(n2)O(n2)O(n^2)空间复杂...原创 2018-08-22 17:19:56 · 122 阅读 · 0 评论 -
《Algorithm》笔记:选择排序
原文地址:http://brianleelxt.top/2018/08/01/selectionSort/《Algorithm》(Sedgewick)笔记:选择排序原理找到数组中最小的那个元素将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)在剩下的元素中找到最小的元素,将它与第二个元素交换位置直到将整个数组排序复杂度时间复...原创 2018-08-22 17:18:22 · 112 阅读 · 0 评论