当前位置: 首页 > java >正文

搜索--常见面试问题

1. 快速排序实现

要点:分治思想 + 原地分区

def quick_sort(arr, low=0, high=None):if high is None:high = len(arr) - 1if low < high:pi = partition(arr, low, high)  # 获取分区点quick_sort(arr, low, pi-1)      # 递归排序左子数组quick_sort(arr, pi+1, high)     # 递归排序右子数组def partition(arr, low, high):pivot = arr[high]  # 选择最右元素作为基准i = low            # 小于pivot的边界指针for j in range(low, high):if arr[j] < pivot:arr[i], arr[j] = arr[j], arr[i]  # 交换元素i += 1arr[i], arr[high] = arr[high], arr[i]  # 将pivot放到正确位置return i

复杂度:平均O(n log n),最坏O(n²)(可通过随机化pivot避免)

关键优化策略

优化1:三数取中法(避免最坏情况)
<
http://www.xdnf.cn/news/18607.html

相关文章:

  • Android 之wifi连接流程
  • 使用 LangChain 和 Neo4j 构建知识图谱
  • 一文学会vue的动态权限控制
  • 00后AI创业者崛起与AI商业应用新玩法:从Mercor到历史人物复刻的机遇
  • 【剖析高并发秒杀】从流量削峰到数据一致性的架构演进与实践
  • MySQL GPG 密钥更新问题解决文档
  • Kubernetes网络服务全解析
  • Linux netfilter工作原理详解
  • Mac简单测试硬盘读写速度
  • 暴雨环境漏检率下降78%!陌讯动态融合算法在道路积水识别的工程突破
  • LeetCode 面试经典 150_数组/字符串_找出字符串中第一个匹配项的下标(23_28_C++_简单)(KMP 算法)
  • PyTorch 面试题及详细答案120题(71-85)-- 高级特性与工具
  • Base64 编码优化 Web 图片加载:异步响应式架构(Java 后端 + 前端全流程实现)
  • vue实现小程序oss分片上传
  • 合合信息acge模型获C-MTEB第一,文本向量化迎来新突破
  • 微前端架构核心要点对比
  • C++ 使用最新 MySQL Connector/C++(X DevAPI)+ CMake 完整教程
  • 力扣 30 天 JavaScript 挑战 第38天 (第九题)学习了 语句表达式的区别 高级函数 promise async await 节流
  • 《P3623 [APIO2008] 免费道路》
  • Redis Set 类型详解:从基础命令到实战应用
  • git实战(8)git高阶命令分析【结合使用场景】
  • 本地Docker部署开源Web相册图库Piwigo与在线远程访问实战方案
  • 如何优雅解决 OpenCV 分段错误(Segfault):子进程隔离实战
  • pig框架导入总结
  • 动手学深度学习(pytorch版):第六章节—卷积神经网络(1)从全连接层到卷积
  • 新能源汽车热管理仿真:蒙特卡洛助力神经网络训练
  • Text2SQL、ChatBI简介
  • [Vid-LLM] 功能分类体系 | 视频如何被“观看“ | LLM的主要作用
  • Flink2.0学习笔记:使用HikariCP 自定义sink实现数据库连接池化
  • 一键部署开源 Coze Studio