2019年1月14日
摘要:
1.什么是哈希表(Hash Tables) 哈希表可以以极快的速度来查找、添加或删除元素(只需要数次的比较操作。)它比红黑树、二叉搜索树都要快得多。但是哈希表没有排序功能,类似的,如寻找最大值、最小值、中值这些行为都不能在哈希表中实现。 2.实现哈希表的前提条件 要想对一组元素做成哈希表形式的数据结 阅读全文
posted @ 2019-01-14 09:52
MichaelCen
阅读(4782)
推荐(1)
编辑
2019年1月7日
摘要:
1.前文回顾 上一篇随笔写到了红黑树的实现及其各种功能的实现,本文将讲红黑树的删除。 上一篇随笔提到了二叉搜索树的删除功能在红黑树中虽然可以用,但会破坏红黑树的结构。 其实红黑树的删除功能是在二叉搜索树的删除功能上加上了重构结构的功能。因此,如果不熟悉二叉搜索树的删除功能和红黑树的,建议先看二叉搜索 阅读全文
posted @ 2019-01-07 15:22
MichaelCen
阅读(1683)
推荐(0)
编辑
2019年1月2日
摘要:
1.什么是红黑树(Red-BlackBalancedSearchTree) 红黑树本质上是二叉搜索树的改良版,因此,对二叉搜索树不了解的,建议先去看一下二叉搜索树。 二叉搜索树有个严重的缺陷:树本身并不平衡,很容易造成部分分支过长,而部分分支过短的情况,从而影响到了搜索速度。 二叉搜索树的一个极端例 阅读全文
posted @ 2019-01-02 11:20
MichaelCen
阅读(1876)
推荐(1)
编辑
2018年12月27日
摘要:
1.什么是二叉搜索树(BinarySearchTrees) 如下图所示:15为树的根节点,10为15的左节点,20为15的右节点,下面的节点如此类推。 每个父节点都有两个子节点(子节点可能为空),左子节点比父节点小,右子节点比父节点大。 2.二叉搜索树的各种功能 一、节点 每个节点应该含有两个子节点 阅读全文
posted @ 2018-12-27 17:04
MichaelCen
阅读(18227)
推荐(5)
编辑
2018年12月20日
摘要:
1.排序问题 现有一个含有N个数字的数组S,如何通过程序把这个数组变成有序的数组? 例如: 排序前:S:5,3,7,5,9,4,1,100,50 排序后:S:1,3,4,5,5,7,9,50,100 2.二叉堆(binary heaps) 进行堆排序前,需要先把数组排成二叉堆,故这里先介绍二叉堆。 阅读全文
posted @ 2018-12-20 11:57
MichaelCen
阅读(2171)
推荐(0)
编辑
2018年12月18日
摘要:
1.快速排序缺陷 快速排序面对重复的元素时的处理方法是,把它放在了左部分数组或右部分数组,下次进行分区时,还需检测它。如果需要排序的数组含有大量重复元素,则这个问题会造成性能浪费。 解决方法:新增一个相同区域,并把重复元素放进去,下次进行分区时,不对相同区域进行分区。 2. 3区快速排序(3-way 阅读全文
posted @ 2018-12-18 16:44
MichaelCen
阅读(2244)
推荐(0)
编辑
摘要:
1.排序问题 现有一个含有N个数字的数组S,如何通过程序把这个数组变成有序的数组? 例如: 排序前:S:5,3,7,5,9,4,1,100,50 排序后:S:1,3,4,5,5,7,9,50,100 2.快速排序(Quicksort) 简单介绍: 快速排序内含一道重要的工序:分区(Partition 阅读全文
posted @ 2018-12-18 15:46
MichaelCen
阅读(833)
推荐(1)
编辑
2018年12月14日
摘要:
1.排序问题 现有一个含有N个数字的数组S,如何通过程序把这个数组变成有序的数组? 例如: 排序前:S:5,3,7,5,9,4,1,100,50 排序后:S:1,3,4,5,5,7,9,50,100 2.归并排序(merge sort) 不同于希尔排序,这里将介绍归并排序。 百度百科的定义:归并排序 阅读全文
posted @ 2018-12-14 16:09
MichaelCen
阅读(962)
推荐(0)
编辑
2018年12月13日
摘要:
1.排序问题 现有一个含有N个数字的数组S,如何通过程序把这个数组变成有序的数组? 例如: 排序前:S:5,3,7,5,9,4,1,100,50 排序后:S:1,3,4,5,5,7,9,50,100 2.解决方法A 从第一项逐步读到最后一项。每读一项,便把它与之前读过的数字全部进行比较,并把它放在大 阅读全文
posted @ 2018-12-13 16:32
MichaelCen
阅读(285)
推荐(1)
编辑
摘要:
1.定义 栈:后进先出(LIFO-last in first out):最后插入的元素最先出来。 队列:先进先出(FIFO-first in first out):最先插入的元素最先出来。 2.用数组实现栈和队列 实现栈: 由于数组大小未知,如果每次插入元素都扩展一次数据(每次扩展都意味着构建一个新 阅读全文
posted @ 2018-12-13 11:24
MichaelCen
阅读(44191)
推荐(3)
编辑
|
|
|