散列方法实现详解
本文概述 1.链式散列 2.使用开放式地址进行哈希处理 有两种用于实现哈希的主要方法: 链式散列 使用开放式地址进行哈希处理 1.链式散列 在“通过链式哈希处理”中, S中的元素存储在大小为m的哈希表T [0 … m-1]中, ...
本文概述 1.链式散列 2.使用开放式地址进行哈希处理 有两种用于实现哈希的主要方法: 链式散列 使用开放式地址进行哈希处理 1.链式散列 在“通过链式哈希处理”中, S中的元素存储在大小为m的哈希表T [0 … m-1]中, ...

本文概述 为什么要使用HashTable? 哈希表的应用 它是项目的集合, 其存储方式使以后可以轻松找到它们。 哈希表中的每个位置称为插槽, 可以容纳一个项目, 并由一个从0开始的整数值命名。 项与该项在哈希表中所属的插槽之间的映射称为哈希...
本文概述 为什么我们需要散列? 通用散列 重新整理 散列是将字符串转换为通常较短的固定长度值或表示原始字符串的键。 哈希用于索引和检索数据库中的项目, 因为使用最短的哈希键查找项目要比使用原始值查找项目更快。它也用在许多加密算法中。 通过使...
基数排序是一种排序算法, 当存在常数“ d”(所有键均为d位数字)时很有用。要执行“基数排序”, 对于p = 1朝“ d”, 使用任何线性时间稳定排序从右开始对数字进行排序。 基数排序代码很简单。以下过程假定n元素数组A中的每个元素都有d位...

桶分类平均在线性时间运行。与计算排序一样, 存储桶排序也很快速, 因为它考虑了有关输入的某些内容。桶排序认为输入是通过随机过程生成的, 该过程在元素μ= [0, 1]上均匀分布元素。 要对n个输入数字进行排序, 请按存储桶排序 将μ划分为n...

本文概述 计数排序使用三个数组 运行时间分析 这是一种线性时间排序算法, 通过不进行比较, 可以更快地工作。假设要排序的数字在1到k的范围内, 其中k很小。 基本思想是确定最终排序数组中每个数字的“等级”。 计数排序使用三个数组 [1, n...
我们拥有可以在O(n log n)时间内对“ n”个数字进行排序的排序算法。 合并排序和堆排序在最坏的情况下达到此上限, 而快速排序在平均情况下达到此上限。 合并排序, 快速排序和堆排序算法具有一个有趣的属性:它们确定的排序顺序仅基于输入元...

下界理论概念基于执行算法所需的最短时间的计算, 被称为下界理论或基础界理论。 下界理论使用多种方法/技术来找出下界。 概念/目标:主要目标是计算执行算法所需的最小比较数。 技术技巧 下界理论使用的技术是: 比较树。 甲骨文和对手的争论 状态...

如果两个具有相等关键字的对象在输入未排序数组中出现的顺序相同, 则排序算法被认为是稳定的。 一些排序算法本质上是稳定的, 例如插入排序, 合并排序和冒泡排序等。 排序算法不稳定, 例如快速排序, 堆排序等。 稳定排序的另一个定义: 稳定排序...
本文概述 算法 分割算法 它是分而治之类型的算法。 除法:重新排列元素并将数组拆分为两个子数组, 并在两次搜索之间的一个元素中, 左子数组中的每个元素小于或等于平均元素, 右子数组中的每个元素大于中间元素。 征服:递归地, 对两个子数组进行...