![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
algorithm
文章平均质量分 54
Luyoom
人必有痴,而后有成
展开
-
【二分搜索法】中间向左还是向右
为什么要使用二分搜索法 假如现在有5个数从小到大排列,如下 1 3 4 7 10 我们要找到数字7排在哪个位置,最简单的解决办法就是从头往后遍历就可以知道数字7在第四个 如果现在有10000个数字,要从中寻找到一个数字,仍使用遍历的方法,如果待寻找的数字排在第一个,则遍历算法是高效的,但是如果待寻找的数字排在最后一个,则寻找的时间复杂度大幅上升,因此,使用二分搜索法的时刻就到了 什么是二分搜索法 二分意为一分为二,即寻找一个中间数将原来的数组分为两部分,根据中间数和目标数的大小比较来确定下一个原创 2021-03-25 22:43:32 · 272 阅读 · 0 评论 -
【双指针】两只指针爱跳舞~
为什么要用到双指针 假设一种情况,现有n个数,你需要从中找到两个数 a和b,使得 a+b=0 easy! 直接暴力排列组合不就解决了?但是这样往往会导致计算时间爆炸 (TT) 如何简化运算量呢? 这时候就需要请双指针来跳舞了跳舞(((((ી(・◡・)ʃ))))) 什么是双指针 但我们去遍历一个数组时,一般使用的都是单个指针 i,双指针,顾名思义就是额外增加了一个指针 j,同时使用两个指针去遍历一个数组,如果两个指针的遍历方向相同就叫快慢指针,如果两个指针的遍历方向相反就叫对撞指针。 俗话说,“男女搭配,干活原创 2021-03-18 13:39:57 · 160 阅读 · 0 评论 -
【快速排序】天下武功唯快排不破
快速排序 快排快排,显然重在快字,但是如何实现这个快呢? 简述 快排是一种采用分治策略的划分交换排序,由此我们就能看见这个快字的奥秘:划分 + 交换 + 分治。 实现划分交换以及分治的操作就构成了快排的基本步骤: 要实现划分首先需要有一个标准 先从待排序数列中取出一个数作为基准 通过数字交换实现区间的划分 比基准数大的均放在其右边,比基准数小的均放在其左边 得到左右区间之后进行分治 对左右区间进行1,2操作直到个区间只有一个数 例证 详细的实现过程,我们通过一个例子来说明 假设我们现有一个数组 a[6]原创 2021-03-17 13:41:56 · 99 阅读 · 0 评论