算法
orange sk
这个作者很懒,什么都没留下…
展开
-
算法之分治思想
分治,与其说是一种算法,不如说是一种思想。所谓分治,就是将一个复杂的、规模大的问题分解成n个已解决的小问题。这些小问题彼此间独立且有统一的解决方式,这些小问题的解的总和即为原问题的解。 分治算法与迭代是分不开的,因为我们需要迭代来指数次分解原问题。因此,在使用分治算法解决问题是,我们要思考三个问题: 将问题分解到怎样的规模,即最小子问题是怎样的 如何使用统一的方法解决小问题 如何将小问题的解合并...原创 2020-02-24 11:48:00 · 238 阅读 · 0 评论 -
算法之回溯算法
回溯算法的核心就是迭代,本质上并没有区别。相比较“回溯法”这个名字,我觉得“嗅探法”这个命名对于回溯算法更有描述性,即像一只小动物那样,走一步,嗅探一下,再向“正确”的方向移动,再进行嗅探,直到走到终点。回溯算法并不难掌握,甚至可以总结为一个固定的、适用于许多编程题的套路,至于这个套路是什么,我先不说,大家一步一步看了解会更深一些。 解空间 在展示回溯算法前,有一个概念需要大家了解——解空间。回溯...原创 2020-02-24 11:46:51 · 299 阅读 · 0 评论 -
二叉树
二叉树是一种特殊的树形结构,这篇博文主要介绍二叉树的特点和二叉树的操作。 介绍二叉树 基础概念 节点 节点是一个结构体,在二叉树中节点专指树节点,树节点在C中的一般定义形式为 struct Node{ struct Node *left; int value; struct Node *right; }; 根据代码,我们可以看见一个节点主要由三部分组成:左分支,序号,右分支。除这些外...原创 2020-02-19 15:23:41 · 297 阅读 · 0 评论 -
算法之动态规划
title: 算法之动态规划 tags: 算法 renderNumberedHeading: true grammar_cjkRuby: true 动态规划算法其实并不复杂,动态规划算法的实际操作核心是“做笔记”,即将前期运算的结果保留下来成为后续运算的基础信息,说白了其实就是用空间换取时间。 其实在我们平时编程时已经初步接触到了许多使用动态规划算法的问题:菲波那切数列、生兔子问题、跳台阶问题,...原创 2020-02-12 20:02:56 · 416 阅读 · 0 评论