算法
Accord one
一只泰迪熊
展开
-
分治算法(以汉诺塔讲解为例)
何为分治算法? 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。(这里我要说明一点分治算法和二分查找的一个区别,分治算法分解的子问题和原问题是有联系的,即求出子问题的解后,就可得到原文题的解;而二分查找不断的分解,所分解的子模块和整个大模块没有关联,当采用二分查找算法查找序列的关键字时,假设要查找的数小于mid,我们就直接放弃右半部分的序列,接着往左半部分找) 好了,言归正传,我主要写一下汉诺塔的一个思路分析: (原创 2020-10-11 21:05:14 · 241 阅读 · 0 评论 -
二分查找算法(Java)
二分查找算法也叫做折半查找,它是一种效率较高的查找方法,但是,二分查找有一个大前提,它要求线性表必须是采用顺序存储的方式,且表中的元素是有序排列的, 本文将讲解二分查找的递归和非递归的两种写法,并改进二分查找(即在一个有序数组中,当有多个相同的数值时,如何将这些数值都查到?)二分查找算法采用非递归要比用递归好。 话不多说,直接上代码: 递归代码 /** * * @param arr * 数组 * @param left * 左边的索引 *原创 2020-10-11 20:46:35 · 134 阅读 · 0 评论