- 博客(3)
- 资源 (1)
- 收藏
- 关注
原创 排序
插入排序(insertion sort) 插入排序由N-1趟排序组成,对于P = 1到P = N-1趟,插入排序保证从位置0到位置P上的元素为已排序状态。插入排序的平均情形是Θ(N^2) 假设不存在重复的元素,有以下定理: 【定理】N个互异的数的数组的平均逆序数是N(N-1)/4 【定理】通过交换相邻元素进行排序的任何算法平均需要Ω(N^2) 希尔排序(S
2015-09-29 05:11:36 601
原创 优先队列(堆)
优先队列是至少允许至少下列两种操作的数据结构:插入,和删除最小者(DeleteMin),它的工作是找出、返回并删除优先队列中最小的元素。简单的实现包括: 1. 使用一个简单链表在表头以O(1)执行插入操作,并遍历该链表以删除最小单元,这又需要O(N) 2. 始终让表保持排序状态;这使得插入代价高昂(O(N))而DeleteMin花费低廉(O(1)) 3. 使用二叉查找树,它对这两种操作的平均
2015-09-23 09:07:29 566
原创 散列
散列(hashing)是一种用于以常数平均时间执行插入、删除和查找的技术,但需要元素间任何排序信息的操作将不会得到有效的支持 理想的散列表数据结构只是一个包含关键字的具有固定大小的数组;每个关键字被映射到从0~TableSize-1这个范围中的某个数,并且被放到适当的单元中。这个映射叫做散列函数(hash function),理想情况下它应该运算简单并且保证任何两个不同的关键字映射到不同的单元。
2015-09-14 10:26:03 479
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人