
简介
该用户还未填写简介
擅长的技术栈
未填写擅长的技术栈
可提供的服务
暂无可提供的服务
C++实现二维数组的搜索(剑指Offer经典题)
在计算机专业的算法学习中,二维数组的搜索是非常基础且高频的考点,尤其是每行每列都按升序排列的二维数组查找问题,更是面试和笔试中的常客。除了从右上角开始,也可以选择左下角作为起始点,思路是类似的。这个思路的时间复杂度是O(m+n),空间复杂度是O(1),效率远高于暴力遍历。1. 初始时,行索引 i=0 ,列索引 j = 列数-1 (即右上角元素);3. 如果当前元素大于目标值,说明目标值在当前列的左
C++实现矩阵顺时针旋转90度(原地旋转解法)
暴力法需要额外的二维数组存储旋转后的结果,空间复杂度为 O(n^2),不符合“原地旋转”的要求。如果需要实现逆时针旋转90度,只需调整反转的顺序:先反转每一行,再进行矩阵转置即可。这个思路的核心是利用“转置+行反转”的组合操作,等价于顺时针旋转90度,时间复杂度为 O(n^2)(每个元素仅被操作两次)。给定一个n x n的正方形矩阵,要求在原地将矩阵顺时针旋转90度,不能使用额外的二维数组存储结果
C++实现快速排序(入门级详解)
通过遍历数组,把小于等于基准值的元素交换到左侧,最后将基准值放到左右区域的中间。快速排序的平均时间复杂度为O(n\log n),最坏时间复杂度为O(n^2)(极端有序数组),空间复杂度为O(\log n)(递归调用栈)。1. 基准值选择:入门阶段选数组末尾元素即可,进阶可采用“三数取中法”(选首、中、尾元素的中位数),避免最坏情况;2. 分区:遍历数组,将小于基准值的元素放到基准左侧,大于基准值的
到底了







