分治算法

星期六, 9月 28, 2024 | 2分钟阅读 | 更新于 星期日, 12月 8, 2024

YuanFeng Xie

简述

分治算法,尤其是二分搜索,在许多问题中都能发挥重要作用。这种算法的核心思想是将一个复杂的问题分解成更小、更容易解决的子问题,然后将这些子问题的解合并以得到原问题的解。

在搜索方面,二分搜索展现出了显著的优势。它能够在有序数据集中快速定位目标元素,时间复杂度通常为O(log n),这意味着即使在大规模数据集上也能保持高效。这种对数级的时间复杂度使得二分搜索在处理大量数据时特别有优势,远胜于线性搜索算法。

然而,二分搜索也存在一些局限性。首先,它要求数据集必须是有序的,这在某些情况下可能需要额外的排序步骤,增加了整体的时间复杂度。其次,对于频繁进行插入和删除操作的动态数据集,维护有序性可能会带来较大的开销。此外,在处理小规模数据集时,简单的线性搜索可能会更加高效,因为它不需要额外的比较操作和跳转。

练习

  • 练习一
    • binary-search
    • search-insert-position
    • find-smallest-letter-greater-than-target
          / [pdf]
  • 练习二
    • count-negative-numbers-in-a-sorted-matrix
    • find-first-and-last-position-of-element-in-sorted-array
          / [pdf]
  • 练习三
    • find-right-interval
          / [pdf]
  • 练习四
    • time-based-key-value-store
          / [pdf]
  • 练习五
    • snapshot-array
          / [pdf]
  • 练习六
    • search-in-rotated-sorted-array
    • find-minimum-in-rotated-sorted-array
          / [pdf]
  • 练习七
    • search-in-rotated-sorted-array-ii
    • guess-number-higher-or-lower
          / [pdf]
  • 练习八
    • first-bad-version
    • search-a-2d-matrix
          / [pdf]
  • 练习九
    • valid-perfect-square
    • sqrtx
    • arranging-coins
          / [pdf]
  • 练习十
    • kth-missing-positive-number
    • h-index-ii
          / [pdf]
  • 练习十一
    • single-element-in-a-sorted-array
    • find-k-closest-elements
          / [pdf]
  • 练习十二
    • peak-index-in-a-mountain-array
          / [pdf]
  • 练习十三
    • median-of-two-sorted-arrays
          / [pdf]

© 2024 小谢同学的修行小屋

🌱 Powered by Hugo with theme Dream.

关于我

一名喜欢RUST的菜鸟程序员

教育背景(研二在读)

  • 2019.09 - 2023.06 天津大学 · 智能与计算学部 · 网络安全专业 · 全日制 · 本科
  • 2023.09 - 2026.06 天津大学 · 智能与计算学部 · 电子信息专业 · 全日制 · 硕士研究生
浏览器漏洞挖掘项目

V8引擎的模糊测试工具改进

时间:2021.09-2022.04

内容:聚焦于优化JavaScript引擎的测试方法。研究团队基于SOAT改进部署了V8引擎测试环境,并通过分析测例覆盖率和已知CVE,优化了测试流程。

成果:成功捕获了一个谷歌引擎的逻辑漏洞,获得了修复反馈

JS引擎WASM模块漏洞挖掘研究

时间:2023.11-2024.4

内容:阅读标准手动编写了WASM语法规则,调研了主流JS引擎的WASM支持情况,并基于V8构建了WASM二进制框架。

成果:语法规则、调研报告和二进制构建框架,成功捕获特性缺陷并得到修复

数据库缺陷研究项目

关系型数据库缺陷的实证研究

时间:2022.12-2023.11

内容:通过构建统一的数据库逻辑框架,系统收集并分析了大量数据库缺陷。对777个缺陷进行了深入分析,特别聚焦SQL数据类型问题,并据此改进了模糊测试方法。

成果:构建缺陷数据集, 开发SQLT测试框架

网络协议漏洞挖掘项目

基于 RFC的 SSL/TLS模糊测试

时间:2024.4 – today

内容:梳理TLS协议模糊测试的相关工作,关注基于状态机的网络协议模糊测试方法。复现历史漏洞,了解TLS报文结构,追溯相关漏洞代码。分析RFC文档,提取字段约束,构建状态转移范式,并据此完善了TLS协议的有限状态机模型。

成果:完成相关工作调研, 漏洞复现报告, 状态范式数据集