上一页 1 2 3 4 5 6 ··· 8 下一页

2018年1月10日

3.5 二叉查找树的几何应用

摘要: 一.一维范围查找 1.希望增加2个功能:range count和range search。 range count:lo和hi之间有多少个键。 range search:lo和hi之间有哪些键。 2.范围计数:利用二叉查找树的rank()方法,可以找到小于某个键的数量。如果最大界在二叉查找树中,需要 阅读全文

posted @ 2018-01-10 11:13 SunnyCx 阅读(305) 评论(0) 推荐(0) 编辑

2018年1月9日

3.4 散列表

摘要: 一.前言(Hash table) 1.红黑树具有lgN的性能保障,能否做得更好? 可以,但是需要一种不同的获取数据的方式,并且不能保证有序操作。即散列表 2.几个需要思考的问题: (1)散列函数的计算 (2)相等测试。可以使用equals来判断两个key是否相等 (3)碰撞冲突。两个键散列以后具有相 阅读全文

posted @ 2018-01-09 10:23 SunnyCx 阅读(147) 评论(0) 推荐(0) 编辑

2018年1月8日

3.3 平衡查找树

摘要: 希望找到一种数据结构,能够保证所有操作(范围查找除外)均能够在对数时间内完成操作,以便改变二叉查找树的不足。 平衡查找树Balance Search Tree 一.2-3查找树 1.数据结构:每个结点允许1个或者两个key (1)2-node:一个键,两个child。左子树小于该节点,右子树大于该节 阅读全文

posted @ 2018-01-08 15:52 SunnyCx 阅读(171) 评论(0) 推荐(0) 编辑

3.2 符号表之二叉查找树BST

摘要: 一.插入和查找 1.二叉查找树(Binary Search Tree)是一棵二叉树,并且每个结点都含有一个Comparable的键,保证每个结点的键都大于其左子树中任意结点的键而小于其右子树的任意结点的键。 2.一个结点需要维持几个实数域,即键,值,左、右结点,还需要维持一个count值,用来表示该 阅读全文

posted @ 2018-01-08 15:50 SunnyCx 阅读(444) 评论(0) 推荐(0) 编辑

3.1 符号表之二分查找

摘要: 一.查找 1.对于简单的查找来说,主要是顺序查找和二分查找。顺序查找主要是用无序链表来维持key,二分查找主要是用有序数组来维持。 2.对顺序查找来说,难点在于查找,而二分查找难点在于插入。 二.二分查找 1.思路:递归的rank()满足: (1)如果表中存在该键,rank()应该返回该键的位置,即 阅读全文

posted @ 2018-01-08 14:28 SunnyCx 阅读(223) 评论(0) 推荐(0) 编辑

2018年1月3日

2.7 二叉堆及优先队列

摘要: 一.二叉树 1.首先介绍一下二叉树 (1)二叉树:每个节点最多有两个子树的结构 (2)完全二叉树:叶节点只能出现在最下层和次下层,并且最下一层的节点集中在该层最左边的若干位置的二叉树 (3)满二叉树:叶节点只能出现在最下层 二.二叉堆(堆) 1.堆有序:当一棵二叉树的每个结点都不小于它的两个子结点时 阅读全文

posted @ 2018-01-03 11:20 SunnyCx 阅读(220) 评论(0) 推荐(0) 编辑

2018年1月2日

2.6 经典排序算法总结

摘要: 在学习完普利斯顿算法该部分和Algorithms第四版第二章以后,对几大经典排序算法的思想和java实现进行总结,包括选择排序,插入排序,希尔排序,归并排序,快速排序以及堆排序。 一.选择排序 selection sort 1.基本思想:i遍历数组,一直在未分类的元素中找最小的元素,并与a[i]交换 阅读全文

posted @ 2018-01-02 15:50 SunnyCx 阅读(278) 评论(0) 推荐(0) 编辑

2.5 3-way quickSort

摘要: 1.排序时,数组含有大量重复元素,应该使用哪种排序手段? (1)mergeSort:与数组的特征无关,比较次数总是在1/2NlgN~NlgN之间 (2)quickSort:当所有的元素全都相同的时候,使用平方次时间 2.3-way partitioning算法的目标: 将数组划分为3部分: (1)l 阅读全文

posted @ 2018-01-02 15:29 SunnyCx 阅读(305) 评论(0) 推荐(0) 编辑

2.4 选择第k大的元素 selection

摘要: 1.目标:找到N个元素中,第k大的数。 例如:max是k=N--1;min是k=0;median是k=N/2 2.Quick-select 借鉴了快速排序的思想 (1)利用partition保证: ①a[j] is in place ②左边的元素不大于a[j],右边的元素不小于a[j] (2)在其中 阅读全文

posted @ 2018-01-02 11:19 SunnyCx 阅读(134) 评论(0) 推荐(0) 编辑

2018年1月1日

2.3 comparator(比较器)

摘要: 1.comparator是java的一种机制,用来帮助我们给相同对象的不同属性排序 2.Comparable接口,是一个对象本身就已经支持自比较所需要实现的接口,如String,Integer自己就已经实现了Comparable接口,可以完成比较大小的操作,在sort时,如果不指定Comparato 阅读全文

posted @ 2018-01-01 15:28 SunnyCx 阅读(347) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 8 下一页

导航