ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

第二学期——数组、二分查找

2026/9/5 2:23:23 拓冰建站 浏览量
第二学期——数组、二分查找 数据结构与数组基础概念篇栈、队列、树等。· 数组Array· 特点存储在连续内存空间通过索引下标访问时间复杂度 O(1)。· 优缺点查找快但插入和删除慢需移动大量元素且大小通常固定静态数组。· 在Java/Python中Java的ArrayList、Python的list是动态数组可扩容。二分查找法LeetCode 704 经典题核心前提数组必须有序通常升序。算法思想· 定义左右指针left、right取中间mid。· 比较nums[mid]与target· 相等 → 返回mid· target更大 → 缩小左边界 left mid 1· target更小 → 缩小右边界 right mid - 1· 循环结束未找到 → 返回 -1时间复杂度O(log n)每次排除一半数据空间复杂度O(1)迭代法代码模板背熟defsearch(nums,target):left,right0,len(nums)-1whileleftright:# 注意是 mid(leftright)//2ifnums[mid]target:returnmidelifnums[mid]target:leftmid1else:rightmid-1return-1易错点提醒· 循环条件用 还是 推荐 这样区间是闭区间 [left, right]逻辑更统一。· 防止 leftright 溢出可用 mid left (right - left) // 2但Python整数无上限此写法更通用。