排序算法--堆排序
摘要:堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都...
阅读全文
posted @
2013-04-30 16:15
来也
阅读(485)
推荐(1)
排序算法 -- 插入排序
摘要:插入排序 插入排序的很像是打扑克的时候码牌的做法,我们在拿到分发到自己手里的牌后,一般会按照打牌的规则将纸牌依次排序,排序后的纸牌序列会给我们很多战术和战略的启发和帮助。插入排序的做法和我们将牌按序排列的做法十分相似。 首先我们考虑一个整数序列,这个序列里面的数字是无序的,就像是我们被分到一堆没有排列好的牌。我们怎么把他们排序呢?比如我们有一个无序的数组{3,7,1,4},首先我们拿到了3,我们认为一个元素的序列是有序的:此时我们拿到下一个元素7,3与7比较,3在7的前面,所以将7插入3的后面。然后我们拿到1,1依次与7和3比较,比现存的有序序列都小,则将1放在3的前面。然后我们拿到4,4..
阅读全文
posted @
2013-04-28 16:25
来也
阅读(325)
推荐(0)
BitMap 学习---- 排序和查重
摘要:一、基本介绍 所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储方面,可以大大节省。上图,图总是比文字更加容易理解一些。图中表示一个byte,用相应的下标表示Key值;比如我们的数据中存在 0 、3 、6、7,对应的bit就置1.其他数据没有就置0如下图:在一般的PC中,存储一个整型数据组要4个字节的空间,若使用上述方法,只需要一个字节的空间就足够了。BitMap的存储方式当然会带来一些问题,比如当数据非常稀疏,数据之间的间隔很大(1、100000、200000这样的序列存储比正常存储占用的空间更大),但是.
阅读全文
posted @
2013-04-06 12:53
来也
阅读(871)
推荐(0)