算法
是个猴子
Android菜鸟
展开
-
分治法-归并排序
分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后再合并这些子问题的解来建立原问题的解。 归并排序算法基本流程: 分解待排序的n个元素的序列成各具n/2个元素的两个子序列; 使用归并排序递归地排序两个子序列; 合并两个已排序的子序列以产生已排序的答案。 Java代码实现: class Mergesort原创 2016-08-15 22:02:40 · 380 阅读 · 0 评论 -
分治法-最大子数组问题
寻找数组A的和最大的非空连续子数组。例如:数组 A = {13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7}的和最大的连续子数组为{18, 20, -7, 12},最大和为43,所以{18, 20, -7, 12}就是A的最大子数组; 数组{1, -4, 3, -4}的最大子数组为{3}。 采用分治策略:将数组分为两个规模原创 2016-08-24 21:57:44 · 1924 阅读 · 0 评论 -
栈的应用-四则运算表达式求值
Java实现四则运算表达式求值前言最近在复习数据结构与算法,在栈的应用中了解到计算机计算四则运算表达式的算法。计算机计算四则运算主要分两步: 将中缀表达式转化为后缀表达式; 将后缀表达式进行运算得出结果。 后缀(逆波兰)表达式后缀表达式是一种不包含括号,运算符放在两个运算对象的后面的表示法,比如四则运算表达式9+(3-1)*3+10/2,其后缀表达式为9 3 1 - 3 * + 10 2 / +。原创 2016-12-25 17:51:18 · 748 阅读 · 0 评论