![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java开发
天山童姥yy
这个作者很懒,什么都没留下…
展开
-
JAVA基本算法详细图解---归并排序
今天来搞一搞归并(合并)排序基本思想归并排序的主要实现思想是分治策略,先抛出两个问题,大家在读的过程中分析下为什么归并排序满足下面这两点1、时间复杂度:T(n)= O(nlogn)2、合并排序算法是渐进最优算法。将待排序的数组分为大致相等的两部分,分别对这两部分进行排序,最终将两个排好序的数组合并成一个有序的数组。接下来我们先来看实现代码,如果可以看明白代码,说明你已经了解了归并算法了。看的时候有疑问也不要紧,我们下面会进行详细的分解详细描述。代码实现(递归) /**原创 2020-06-10 21:11:02 · 232 阅读 · 0 评论 -
JAVA 基本查找算法图解 ---- 二分查找详解
二分搜索技术二分搜索算法是运用分治策略的典型例子。分治分治顾名思义就是分而治之。基本思想是将一个规模比较大的问题分为多个小问题,这些问题相互独立且与原问题相同。递归的解这些问题,最后将这些问题的解进行合并得到原问题的解。下面我们以一个示例来进行介绍我们的二分搜索算法思想与代码。即:1、分解2、递归求解3、合并如:我们要在一个有序数组 [1,2,3,4,5,6,7,8,9,10,11,12,13,14] 中找寻元素值等于 9 的元素的下标,没有则返回 -1;先说整体思路:.原创 2020-06-08 20:43:42 · 326 阅读 · 0 评论 -
JAVA基本算法详细图解---快速排序
快速排序思路以排序数组int numbers = {4,8,2,3,8,9,5,2,3,6,5,8,7,3,6} 为例整体思路:典型的分治思想1、分解 以数组的第一个元素为基准进行排序,大于基准元素的 放在右边,小于基准元素的放在左边,这样就将数组分成了三部分左边数组(小于等于基准数组) 基准元素本身 右边数组(大于等于基准数组)2、递归求解分别在第一步基础上 递归地对左边数组以及右边数组排序3、合并就是将数组合并,由于第一步的所有左边的数组元素 <...原创 2020-06-05 21:26:39 · 424 阅读 · 1 评论