• 1 背包问题 动态规划先解决子问题 再逐步解决大问题 每个动态规划都从一个网格开始 背包问题的网格如下 网格最初是空的 动态规划就是逐步将网格填满 吉他行 第一个单元格表示背包的容量为1磅 吉他的重量也是1磅 这意味着它能装入背包 因此这个
  • 本博客所有内容均整理自 算法图解 欢迎讨论交流 了解过机器学习这个概念 一定知道有一种名为k最近邻的算法 简称KNN 对于k最近邻算法的定义 百度百科是这样给出的 K最近邻 k Nearest Neighbor KNN 分类算法 是一个理论
  • 算法的运行时间 运行时间增速 不同算法随规模的增大而增大的速度不同 我们需要比较不同算法的运行时间的增速 大O表示法 类比数据结构中的时间复杂度 比较操作数 其体现了算法运行时间的增速 这种表示法体现了算法在最糟情况下的运行时间 这不就是时
  • 利用一个顺序栈 判断一个字符串是否是对称串 所谓对称串是指从左向右读和从右向左读的序列相同 有些类似上一篇博客所说的回文 解题思路 对于字符串str 先将其所有元素进栈 从头开始扫描str 同时出栈元素 将出栈元素与从头开始扫描的str元素
  • 算法讲解 选择排序 数组链表 数组和链表 选择排序 本文是对 算法图解 的第二章的学习的笔记 欢迎多多指正 数组和链表 数组 使用数组存储item意味着所有item在内存中都是相连的 在数组中存储新的item可能很麻烦 because if
  • 在进行单链表的基本运算之前必须先建立单链表 建立单链表的常用方法有两种 头插法建表和尾插法建表 头插法建表 从一个空表开始 读取字符数组a中的字符 生成新节点 将读取的数据存放到新节点的数据域中 然后将新节点插入到当前链表的表头上 直到读完
  • 归并排序是多次将两个或两个以上的有序表合并成一个新的有序表 最简单的归并是直接将两个有序的子表合并成一个有序的表 即二路归并 二路归并的排序基本思想是 将a 0 n 1 看成是n个长度为1的有序序列 然后进行两两归并 得到n 2 向上取整