算法笔记
dy0953
这个作者很懒,什么都没留下…
展开
-
算法笔记(第一部分)-- 排序之名词
关于算法的笔记应该三年前就开始总结,哎,拖到现在。最近在公司上班闲着无聊,开始重新看算法中的各种排序,发现三年前不能领悟的东西,现在慢慢地开始有些懂了。为了应付以后的各种面试,准备对比较常用的一些排序做一些傻瓜式的整理。排序的关键字:1. 时间复杂度:整个排序算法运行所需要的时间。2. 空间复杂度:排序算法运行过程中所需额外空间。3. 稳定性:若待排序的序列中有大小相同的两个数...2008-08-28 01:52:21 · 180 阅读 · 0 评论 -
算法笔记(第一部分)-- 排序之白话冒泡排序
冒泡排序,是所有排序中最简单的一种,也是效率最低的一种,时间复杂度О(n²),空间复杂度O(n)。冒泡排序没有改变原始元素的相对位置,因此是稳定的排序。冒泡排序动画:[img]http://upload.wikimedia.org/wikipedia/commons/c/c8/Bubble-sort-example-300px.gif[/img]冒泡排序Java代码(递增)...2008-08-28 02:20:00 · 168 阅读 · 0 评论 -
算法笔记(第一部分)-- 排序之白话插入排序
插入排序也是一种比较简单的排序方法,它的基本原理就好似我们打牌过程中摸牌理牌那一环:当你摸到一张牌后将其插入到合适的位置。插入排序首先定位一个数(一般从第二个开始),将这个数依次与位于它之前的数进行比较,经过一轮比较,找到它在这些数中适当的位置。然后定位下一个数,再找到合适的位置,依次进行直到最后一个数。例如(5 2 1 4 3),黑体为进行交换的两数。第一轮:([b]2 ...2008-08-28 06:16:29 · 231 阅读 · 0 评论 -
算法笔记(第一部分)-- 排序之白话选择排序
选择排序的工作原理:1. 找到数据集中的最小元素2. 将最小元素与未排序剩余元素的第一个元素交换3. 对剩余元素进行以上步骤它的时间复杂度是:О(n²),空间复杂度是:О(n),同插入排序类似,它也不适用于大数据集。但是它易于实现,也是一种in-place的排序算法。对于稳定性:简易实现是不稳定的,例如(3 5 5 2),在第二轮中第二个五会被认为是最小的,然后同第一个五进行交...2008-08-28 06:34:03 · 181 阅读 · 0 评论 -
算法笔记(第一部分)-- 排序之白话快速排序
记得今年暑假找实习的时候,去过一家小公司Xoopit做On-Site interview,里面有个工程师给我出了一道Hardcode的问题:给定一个无序数组,以及一个数组中的元素,要求输出的数组中小于这个数的数都有序的排在它之前,大于它的数都有序的排在它之后。当时想了半天才写出一个很烂的解法。最近重新复习排序,发现这不就是典型的Quick Sort的应用么。快速排序的步骤:1. 从数组...2008-08-29 01:08:41 · 207 阅读 · 0 评论 -
算法笔记(第一部分)-- 排序之白话归并排序
归并排序是一种基于比较的排序算法,在多数的实现方法下它是稳定的。归并排序可是由计算机祖师级人物-冯 诺依曼提出的哦。归并排序的过程:1. 如果数据链表的长度为0或1,则返回2. 将原始数据链表对半分成两个子链表3. 对每个子链表递归的调用合并排序进行排序4. 合并两个子链表使其成为一个排序完成的链表归并排序的时间复杂度为[i]О(nlogn)[/i],空间复杂度为[...2008-09-02 01:30:53 · 103 阅读 · 0 评论 -
算法笔记(第一部分)-- 排序之白话堆排序
堆排序是一种基于比较的排序算法,它比实现的较好的快速排序慢一些,但是它的平均时间复杂度为[i]O(nlogn)[/i],空间复杂度为[i]О(n)[/i],它是一种in-place的算法,但是却是不稳定的排序算法。最大堆与最小堆的定义:根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最小者的堆称为最小堆.根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者的堆称为最大堆....2008-09-03 01:23:46 · 126 阅读 · 0 评论 -
算法笔记(第二部分)-- 图算法之Dijkstra最短路径算法
Dijkstra算法由著名的荷兰计算机科学家Dijkstra于1959年提出(这位老人家已于2002年过世,过世前任教于University Of Texas,Austin)。简单的说,这个算法解决的就是对于图中的任意一个节点,求出该点到其他节点的最短路径。Dijkstra算法过程:1. 创建一个节点之间的距离表,一个目标节点上一个节点表,一个访问过的节点表和一个当前节点。2. 初...2008-09-24 13:41:44 · 238 阅读 · 0 评论