算法
lenfien
这个作者很懒,什么都没留下…
展开
-
二叉查找树
不知道为什么,之前写的二叉查找树被CSDN删掉了,往上搜了一下好像好挺多这种情况,不管了,就当是为了学习吧,再写一遍好了。 二叉查找树 什么是二叉查找树 二叉查找树是一种特殊的二叉树,之所以特殊是因为它的查找效率很高,而查找效率高的原因是对节点的组织方式遵从下面的两条规则: 1. 所有的父节点的左子树中的元素的key小于父节点的key 2. 所有的父节点的右子树中的结原创 2015-04-11 00:09:58 · 466 阅读 · 0 评论 -
计数排序
计数排序让我惊呆了我写了个计数排序,让它对1亿个随机数进行排序,结果只需要两秒的时间。插入排序就不说了,堆排序和快速排序越需要1分钟以上,而计数排序却只要不到2秒。这差距有点大呀。 对于计数排序来说,它的时间复杂度是线性的,也就是n的却界限。但是正应了鱼和熊掌不可兼得这句话,计数排序不是原地排序,它对内存的要求是排序数个数的两倍加上计数所需内存。下面介绍一下计数排序: 计数排序不是比较排序,也就是说原创 2015-04-04 01:50:16 · 549 阅读 · 0 评论 -
散列
今天开始学习散列了,我现在对散列的理解可能还比较片面,但至少先记录下来。为什么要有散列在一本字典里,所有的单词都应该很快的被索引到,线性查找是不切实际的。在计算机中,能根据索引以O(1)时间找到值的,就只有数组了。也就是,根据数组下标找到这个下标所对应值是最快的。所以,如果把单词和存放到数组中,然后根据每个单词对应的索引就可以以非常快的速度找到这个单词。这里的单词所对应的索引称为key。但是问题在于原创 2015-04-06 15:33:38 · 748 阅读 · 0 评论