 Hello 算法 1.1.0 C#版// 直接遍历数组元素 foreach (int num in nums) { count += num; } } 6. 查找元素 在数组中查找指定元素需要遍历数组,每轮判断元素值是否匹配,若匹配则输出对应索引。 因为数组是线性数据结构,所以上述查找操作被称为“线性查找”。 // === File: array.cs === /* 在数组中查找指定元素 */ int Find(int[] 行比较。如果两者匹 配,那么密码就被视为正确。 ‧ 数据完整性检查:数据发送方可以计算数据的哈希值并将其一同发送;接收方可以重新计算接收到的 数据的哈希值,并与接收到的哈希值进行比较。如果两者匹配,那么数据就被视为完整。 对于密码学的相关应用,为了防止从哈希值推导出原始密码等逆向工程,哈希算法需要具备更高等级的安全 特性。 ‧ 单向性:无法通过哈希值反推出关于输入数据的任何信息。 第 被新元素使用。这样做既能保持哈希表的探测序列不变,又能保证哈希表的空间使用率。 Q:为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因此,线性探测 法会根据预先设定的步长依次向下查找,直至找到正确的键值对或无法找到跳出为止。 第 6 章 哈希表 hello‑algo.com 135 Q:为什么哈希表扩容能够缓解哈希冲突?0 码力 | 378 页 | 18.47 MB | 1 年前3 Hello 算法 1.1.0 C#版// 直接遍历数组元素 foreach (int num in nums) { count += num; } } 6. 查找元素 在数组中查找指定元素需要遍历数组,每轮判断元素值是否匹配,若匹配则输出对应索引。 因为数组是线性数据结构,所以上述查找操作被称为“线性查找”。 // === File: array.cs === /* 在数组中查找指定元素 */ int Find(int[] 行比较。如果两者匹 配,那么密码就被视为正确。 ‧ 数据完整性检查:数据发送方可以计算数据的哈希值并将其一同发送;接收方可以重新计算接收到的 数据的哈希值,并与接收到的哈希值进行比较。如果两者匹配,那么数据就被视为完整。 对于密码学的相关应用,为了防止从哈希值推导出原始密码等逆向工程,哈希算法需要具备更高等级的安全 特性。 ‧ 单向性:无法通过哈希值反推出关于输入数据的任何信息。 第 被新元素使用。这样做既能保持哈希表的探测序列不变,又能保证哈希表的空间使用率。 Q:为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因此,线性探测 法会根据预先设定的步长依次向下查找,直至找到正确的键值对或无法找到跳出为止。 第 6 章 哈希表 hello‑algo.com 135 Q:为什么哈希表扩容能够缓解哈希冲突?0 码力 | 378 页 | 18.47 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 C# 版// 直接遍历数组元素 foreach (int num in nums) { count += num; } } 6. 查找元素 在数组中查找指定元素需要遍历数组,每轮判断元素值是否匹配,若匹配则输出对应索引。 因为数组是线性数据结构,所以上述查找操作被称为“线性查找”。 // === File: array.cs === /* 在数组中查找指定元素 */ int Find(int[] 行比较。如果两者匹 配,那么密码就被视为正确。 ‧ 数据完整性检查:数据发送方可以计算数据的哈希值并将其一同发送;接收方可以重新计算接收到的 数据的哈希值,并与接收到的哈希值进行比较。如果两者匹配,那么数据就被视为完整。 对于密码学的相关应用,为了防止从哈希值推导出原始密码等逆向工程,哈希算法需要具备更高等级的安全 特性。 ‧ 单向性:无法通过哈希值反推出关于输入数据的任何信息。 第 被新元素使用。这样做既能保持哈希表的探测序列不变,又能保证哈希表的空间使用率。 Q:为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因此,线性探测 法会根据预先设定的步长依次向下查找,直至找到正确的键值对或无法找到跳出为止。 第 6 章 哈希表 www.hello‑algo.com 135 Q:为什么哈希表扩容能够缓解哈希冲突?0 码力 | 379 页 | 18.48 MB | 10 月前3 Hello 算法 1.2.0 简体中文 C# 版// 直接遍历数组元素 foreach (int num in nums) { count += num; } } 6. 查找元素 在数组中查找指定元素需要遍历数组,每轮判断元素值是否匹配,若匹配则输出对应索引。 因为数组是线性数据结构,所以上述查找操作被称为“线性查找”。 // === File: array.cs === /* 在数组中查找指定元素 */ int Find(int[] 行比较。如果两者匹 配,那么密码就被视为正确。 ‧ 数据完整性检查:数据发送方可以计算数据的哈希值并将其一同发送;接收方可以重新计算接收到的 数据的哈希值,并与接收到的哈希值进行比较。如果两者匹配,那么数据就被视为完整。 对于密码学的相关应用,为了防止从哈希值推导出原始密码等逆向工程,哈希算法需要具备更高等级的安全 特性。 ‧ 单向性:无法通过哈希值反推出关于输入数据的任何信息。 第 被新元素使用。这样做既能保持哈希表的探测序列不变,又能保证哈希表的空间使用率。 Q:为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因此,线性探测 法会根据预先设定的步长依次向下查找,直至找到正确的键值对或无法找到跳出为止。 第 6 章 哈希表 www.hello‑algo.com 135 Q:为什么哈希表扩容能够缓解哈希冲突?0 码力 | 379 页 | 18.48 MB | 10 月前3
 Hello 算法 1.0.0b5 C#版count++; } // 直接遍历数组 foreach (int num in nums) { count++; } } 6. 查找元素 在数组中查找指定元素需要遍历数组,每轮判断元素值是否匹配,若匹配则输出对应索引。 因为数组是线性数据结构,所以上述查找操作被称为“线性查找”。 // === File: array.cs === /* 在数组中查找指定元素 */ int find(int[] 行比较。如果两者匹 配,那么密码就被视为正确。 ‧ 数据完整性检查:数据发送方可以计算数据的哈希值并将其一同发送;接收方可以重新计算接收到的 数据的哈希值,并与接收到的哈希值进行比较。如果两者匹配,那么数据就被视为完整的。 对于密码学的相关应用,为了防止从哈希值推导出原始密码等逆向工程,哈希算法需要具备更高等级的安全 特性。 ‧ 抗碰撞性:应当极其困难找到两个不同的输入,使得它们的哈希值相同。 用。这样做既能保持哈希表的探测 序列不变,又能保证哈希表的空间使用率。 � 为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因 此,线性探测法会根据预先设定的步长依次向下查找,直至找到正确的键值对或无法找到跳 出为止。 � 为什么哈希表扩容能够缓解哈希冲突? 哈希函数的最后一步往往是对数组长度0 码力 | 376 页 | 30.69 MB | 1 年前3 Hello 算法 1.0.0b5 C#版count++; } // 直接遍历数组 foreach (int num in nums) { count++; } } 6. 查找元素 在数组中查找指定元素需要遍历数组,每轮判断元素值是否匹配,若匹配则输出对应索引。 因为数组是线性数据结构,所以上述查找操作被称为“线性查找”。 // === File: array.cs === /* 在数组中查找指定元素 */ int find(int[] 行比较。如果两者匹 配,那么密码就被视为正确。 ‧ 数据完整性检查:数据发送方可以计算数据的哈希值并将其一同发送;接收方可以重新计算接收到的 数据的哈希值,并与接收到的哈希值进行比较。如果两者匹配,那么数据就被视为完整的。 对于密码学的相关应用,为了防止从哈希值推导出原始密码等逆向工程,哈希算法需要具备更高等级的安全 特性。 ‧ 抗碰撞性:应当极其困难找到两个不同的输入,使得它们的哈希值相同。 用。这样做既能保持哈希表的探测 序列不变,又能保证哈希表的空间使用率。 � 为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因 此,线性探测法会根据预先设定的步长依次向下查找,直至找到正确的键值对或无法找到跳 出为止。 � 为什么哈希表扩容能够缓解哈希冲突? 哈希函数的最后一步往往是对数组长度0 码力 | 376 页 | 30.69 MB | 1 年前3
 Hello 算法 1.0.0 C#版// 直接遍历数组元素 foreach (int num in nums) { count += num; } } 6. 查找元素 在数组中查找指定元素需要遍历数组,每轮判断元素值是否匹配,若匹配则输出对应索引。 因为数组是线性数据结构,所以上述查找操作被称为“线性查找”。 // === File: array.cs === /* 在数组中查找指定元素 */ int Find(int[] 行比较。如果两者匹 配,那么密码就被视为正确。 ‧ 数据完整性检查:数据发送方可以计算数据的哈希值并将其一同发送;接收方可以重新计算接收到的 数据的哈希值,并与接收到的哈希值进行比较。如果两者匹配,那么数据就被视为完整。 对于密码学的相关应用,为了防止从哈希值推导出原始密码等逆向工程,哈希算法需要具备更高等级的安全 特性。 ‧ 单向性:无法通过哈希值反推出关于输入数据的任何信息。 第 被新元素使用。这样做既能保持哈希表的探测序列不变,又能保证哈希表的空间使用率。 Q:为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因此,线性探测 法会根据预先设定的步长依次向下查找,直至找到正确的键值对或无法找到跳出为止。 第 6 章 哈希表 hello‑algo.com 135 Q:为什么哈希表扩容能够缓解哈希冲突?0 码力 | 376 页 | 17.59 MB | 1 年前3 Hello 算法 1.0.0 C#版// 直接遍历数组元素 foreach (int num in nums) { count += num; } } 6. 查找元素 在数组中查找指定元素需要遍历数组,每轮判断元素值是否匹配,若匹配则输出对应索引。 因为数组是线性数据结构,所以上述查找操作被称为“线性查找”。 // === File: array.cs === /* 在数组中查找指定元素 */ int Find(int[] 行比较。如果两者匹 配,那么密码就被视为正确。 ‧ 数据完整性检查:数据发送方可以计算数据的哈希值并将其一同发送;接收方可以重新计算接收到的 数据的哈希值,并与接收到的哈希值进行比较。如果两者匹配,那么数据就被视为完整。 对于密码学的相关应用,为了防止从哈希值推导出原始密码等逆向工程,哈希算法需要具备更高等级的安全 特性。 ‧ 单向性:无法通过哈希值反推出关于输入数据的任何信息。 第 被新元素使用。这样做既能保持哈希表的探测序列不变,又能保证哈希表的空间使用率。 Q:为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因此,线性探测 法会根据预先设定的步长依次向下查找,直至找到正确的键值对或无法找到跳出为止。 第 6 章 哈希表 hello‑algo.com 135 Q:为什么哈希表扩容能够缓解哈希冲突?0 码力 | 376 页 | 17.59 MB | 1 年前3
 Hello 算法 1.2.0 繁体中文 C# 版// 直接走訪陣列元素 foreach (int num in nums) { count += num; } } 6. 查詢元素 在陣列中查詢指定元素需要走訪陣列,每輪判斷元素值是否匹配,若匹配則輸出對應索引。 因為陣列是線性資料結構,所以上述查詢操作被稱為“線性查詢”。 // === File: array.cs === /* 在陣列中查詢指定元素 */ int Find(int[] 存密碼的雜 湊值。當用戶輸入密碼時,系統會對輸入的密碼計算雜湊值,然後與儲存的雜湊值進行比較。如果兩者 匹配,那麼密碼就被視為正確。 ‧ 資料完整性檢查:資料傳送方可以計算資料的雜湊值並將其一同傳送;接收方可以重新計算接收到的 資料的雜湊值,並與接收到的雜湊值進行比較。如果兩者匹配,那麼資料就被視為完整。 對於密碼學的相關應用,為了防止從雜湊值推導出原始密碼等逆向工程,雜湊演算法需要具備更高等級的安 被新元素使用。這樣做既能保持雜湊表的探測序列不變,又能保證雜湊表的空間使用率。 Q:為什麼線上性探查中,查詢元素的時候會出現雜湊衝突呢? 查詢的時候透過雜湊函式找到對應的桶和鍵值對,發現 key 不匹配,這就代表有雜湊衝突。因此,線性探查 法會根據預先設定的步長依次向下查詢,直至找到正確的鍵值對或無法找到跳出為止。 第 6 章 雜湊表 www.hello‑algo.com 135 Q:為什麼雜湊表擴容能夠緩解雜湊衝突?0 码力 | 379 页 | 18.79 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 C# 版// 直接走訪陣列元素 foreach (int num in nums) { count += num; } } 6. 查詢元素 在陣列中查詢指定元素需要走訪陣列,每輪判斷元素值是否匹配,若匹配則輸出對應索引。 因為陣列是線性資料結構,所以上述查詢操作被稱為“線性查詢”。 // === File: array.cs === /* 在陣列中查詢指定元素 */ int Find(int[] 存密碼的雜 湊值。當用戶輸入密碼時,系統會對輸入的密碼計算雜湊值,然後與儲存的雜湊值進行比較。如果兩者 匹配,那麼密碼就被視為正確。 ‧ 資料完整性檢查:資料傳送方可以計算資料的雜湊值並將其一同傳送;接收方可以重新計算接收到的 資料的雜湊值,並與接收到的雜湊值進行比較。如果兩者匹配,那麼資料就被視為完整。 對於密碼學的相關應用,為了防止從雜湊值推導出原始密碼等逆向工程,雜湊演算法需要具備更高等級的安 被新元素使用。這樣做既能保持雜湊表的探測序列不變,又能保證雜湊表的空間使用率。 Q:為什麼線上性探查中,查詢元素的時候會出現雜湊衝突呢? 查詢的時候透過雜湊函式找到對應的桶和鍵值對,發現 key 不匹配,這就代表有雜湊衝突。因此,線性探查 法會根據預先設定的步長依次向下查詢,直至找到正確的鍵值對或無法找到跳出為止。 第 6 章 雜湊表 www.hello‑algo.com 135 Q:為什麼雜湊表擴容能夠緩解雜湊衝突?0 码力 | 379 页 | 18.79 MB | 10 月前3
 Hello 算法 1.0.0b4 C#版行比较。如果两者匹 配,那么密码就被视为正确。 ‧ 数据完整性检查:数据发送方可以计算数据的哈希值并将其一同发送;接收方可以重新计算接收到的 数据的哈希值,并与接收到的哈希值进行比较。如果两者匹配,那么数据就被视为完整的。 对于密码学的相关应用,哈希算法需要满足更高的安全标准,以防止从哈希值推导出原始密码等逆向工程, 包括: ‧ 抗碰撞性:应当极其困难找到两个不同的输入,使得它们的哈希值相同。 用。这样做既能保持哈希表的探测 序列不变,又能保证哈希表的空间使用率。 � 为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因 此,线性探测法会根据预先设定的步长依次向下查找,直至找到正确的键值对或无法找到跳 出为止。 � 为什么哈希表扩容能够缓解哈希冲突? 哈希函数的最后一步往往是对数组长度 进行一次编辑(插入、删除、替换),使得两字符串尾部 的字符相同,从而可以跳过它们,考虑规模更小的问题。 也就是说,我们在字符串 ? 中进行的每一轮决策(编辑操作),都会使得 ? 和 ? 中剩余的待匹配字符发生变 化。因此,状态为当前在 ? , ? 中考虑的第 ? , ? 个字符,记为 [?, ?] 。 状态 [?, ?] 对应的子问题:将 ? 的前 ? 个字符更改为 ? 的前 ? 个字符所需的最少编辑步数。0 码力 | 341 页 | 27.39 MB | 1 年前3 Hello 算法 1.0.0b4 C#版行比较。如果两者匹 配,那么密码就被视为正确。 ‧ 数据完整性检查:数据发送方可以计算数据的哈希值并将其一同发送;接收方可以重新计算接收到的 数据的哈希值,并与接收到的哈希值进行比较。如果两者匹配,那么数据就被视为完整的。 对于密码学的相关应用,哈希算法需要满足更高的安全标准,以防止从哈希值推导出原始密码等逆向工程, 包括: ‧ 抗碰撞性:应当极其困难找到两个不同的输入,使得它们的哈希值相同。 用。这样做既能保持哈希表的探测 序列不变,又能保证哈希表的空间使用率。 � 为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因 此,线性探测法会根据预先设定的步长依次向下查找,直至找到正确的键值对或无法找到跳 出为止。 � 为什么哈希表扩容能够缓解哈希冲突? 哈希函数的最后一步往往是对数组长度 进行一次编辑(插入、删除、替换),使得两字符串尾部 的字符相同,从而可以跳过它们,考虑规模更小的问题。 也就是说,我们在字符串 ? 中进行的每一轮决策(编辑操作),都会使得 ? 和 ? 中剩余的待匹配字符发生变 化。因此,状态为当前在 ? , ? 中考虑的第 ? , ? 个字符,记为 [?, ?] 。 状态 [?, ?] 对应的子问题:将 ? 的前 ? 个字符更改为 ? 的前 ? 个字符所需的最少编辑步数。0 码力 | 341 页 | 27.39 MB | 1 年前3
共 6 条
- 1













