Algorithm
文章平均质量分 73
一路前行1
这个作者很懒,什么都没留下…
展开
-
算法导论学习之分治法
算法导论原创 2017-04-17 22:17:28 · 1501 阅读 · 0 评论 -
算法导论学习之快速排序
快速排序是性能比较好的一种排序算法,它的平均时间复杂度为O(n lgn),而且在实际应用中它还要比时间复杂度同为O(n lgn)的归并排序及其他一些算法要快一些。下面让我们来看一下快速排序。 快速排序也应用了分治的思想。首先选取一个数组的第一个或最后一个元素做为主元,然后以这个元素为轴点对数组进行划分,比这个元素小的放在左边,比它大的放在右边。然后递归的调用快排方法,直至数组有原创 2017-04-23 20:59:16 · 1126 阅读 · 0 评论 -
算法导论学习之线性时间排序
在没有限定条件的情况下,目前的排序算法的最好的时间复杂度大都在O(n lgn)左右,而当加入了一些限定条件后,一些排序算法可以达到线性的时间复杂度。下面让我们来看两个线性时间复杂度的排序算法。一计数排序 计数排序要求要排序的数要在一定区间内(0,k),当k=O(n)时,排序的时间复杂度为线性的。 计数排序需要两个辅助数组B[0...n]存放排序的输出和C[0...k]提供原创 2017-04-25 16:21:59 · 687 阅读 · 0 评论 -
MIT算法导论公开课第七讲哈希表
哈希表又称散列表,其定义是根据一个哈希函数将集合S中的关键字映射到一个表中,这个表就称为哈希表,而这种方法就称为Hashing。从作用上来讲,构建哈希表的目的是把搜索的时间复杂度降低到O(1),考虑到一个长度为n的序列,如果依次去比较进行搜索的话,时间复杂度是θ(n),或者对其先进行排序然后再搜索会更快一些,但这两种方法都不是最快的方法。一、直接寻址表 直接寻址表原创 2017-10-22 20:06:48 · 623 阅读 · 0 评论 -
MIT算法导论公开课第八讲全域哈希和完全哈希
全域哈希 对于任意哈希函数而言,都存在一个不好的健集,使得所有的健都会哈希到同一个槽里去,那么如何解决这种情况呢?如何防止对某个键集永远有较差的表现?如何防止竞争对手使用这个键集来降低你的性能表现? 一个词解决这个问题 —— 随机!全域哈希的方法就是随机选择一个哈希函数H(当然不是每次操作都选择一个哈希函数,而是构建一个哈希表的时候随机选一个,选定之后这个原创 2017-10-25 15:04:29 · 1953 阅读 · 0 评论