算法
Lzw_Fight
这个作者很懒,什么都没留下…
展开
-
算法(1) : 合并排序(归并排序)
1、合并排序(归并排序)(1)、基本思想代排序元素分成大小大致相同的两个自己和,分别对两个子集合进行排序,最终将排好序的子集合合并成所要求的排好序的集合。(2)、时间复杂度T(nlogn)(3)、 算法步骤a.将数组一分为二,分到剩下一个元素为止(递归处理)b.将分好的数据按大小一个个排好序合并到原来的数组c.递归结束(4)、代码import java.util.*;publ...原创 2019-09-05 20:16:33 · 572 阅读 · 0 评论 -
算法 (2) :快速排序(随机选择哨兵)
2、快速排序(1)基本思想对于输入的子数组a[p:r],按以下三个步骤进行排序。a.分解(Divide) :以a[p]为基准元素将a[p:r]划分成3段a[p:q-1] , a[q] , a[q+1: r],使a[p:q-1] 的任何一个元素小于等于a[q], 而a[q+1:r] 的任何一个元素都大于等于a[q]。下标q在划分过程中确定b. 递归求解:通过递归调用快速排序算法分别对a[p:...原创 2019-09-07 21:17:22 · 1097 阅读 · 0 评论 -
算法 (3) : 二分查找
3、二分查找(折半查找)(1)基本思想在一个有序的数组中找出对应的值,利用好有序的这个条件进行二分查找,即在将一个数组切成一半再在其中一半查找。(2)时间复杂度最坏:T(n) = O(logn)平均:T(n) = O(logn)(3)算法步骤a. 先找到对应的中点,中点的值和目标的值相比较,若目标值较大则在右半区找,否则在左半区查找b. 重新定位最小坐标或最大坐标c. 重复a动作...原创 2019-09-07 21:27:32 · 156 阅读 · 0 评论 -
算法 (4) :略谈动态规划
4、略谈动态规划(1)基本思想为了避免重复计算相同的子问题可以用一张表来记录已经计算过的子问题的答案,不管子问题是否会被用到都会记录在表中。(2)动态规划步骤a. 找出最优解的性质,并刻画其结构特征b. 递归地定义最优值c. 以自底向上的方式计算出最优值d. 根据计算最优值时得到的信息,构造最优解(3)两个基本要素a.最优子结构 设计动态规划算法的第一步通常都是刻画最...原创 2019-09-07 23:00:07 · 211 阅读 · 0 评论 -
算法 (5) : 最长公共子序列(动态规划)
5、最长公共子序列(1)问题描述输入两个序列,求这两个序列最长的子序列(不连续的)例如:序列Z{B,C,D,B},是序列X={A,B,C,B,D,A,B}的一个子序列(2)使用算法动态规划(3)思考子序列X{x1 , x2, x3 ,x4…xm } 和 Y{y1, y2, y3, y4, …, yn}的最长子序列可以按照以下递归来进行,当xm = yn 时, 找出Xm-1 和 Y...原创 2019-09-07 23:06:41 · 361 阅读 · 0 评论